J'ai l'idée d'utiliser un modèle de regex comme modèle et me demander s'il y a un moyen pratique de le faire en python (3 ou plus récent).
/something/1
4 Réponses :
Ce n'est pas ce que les regex sont destinés, vous pouvez simplement utiliser la mise en forme normale des chaînes.
>>> '/something/{id}'.format(id=1)
'/something/1'
Enregistrez la compilée jusqu'à la substitution:
pattern = re.compile("/something/(?P<%s>.*)" % 1)
ci-dessous est une classe de poids léger que j'ai créée qui fait ce que vous recherchez. Vous pouvez écrire une seule expression régulière et utiliser cette expression pour Il existe un petit exemple sur le bas du code sur la façon de l'utiliser. P > En règle générale, vous construisez une expression régulière normalement et utilisez la correspondance Il y a quelques limitations: p> correspondant code> et recherche code> fonctionne normalement. La fonction code> Format > est utilisée beaucoup comme string.format code> pour générer une nouvelle chaîne. P>
\ 1 code> comme dans string.format code>). LI>
réégégalités (R '(? p [A-Z123] code>) Nous ne saurons pas formater ceux-ci. Li>
ul> p>
Pour des cas très simples, le moyen le plus simple de le faire est de remplacer les groupes de capture nommés avec des champs de format.
Voici un validateur / formateur de base: P>
>>> phonenum.search('(333) 444-5678')
{'area': '333', 'prefix': '444', 'line': '5678'}
>>> phonenum.format(area=111, prefix=555, line=444)
(111) 555-444
Ce n'est pas vraiment ce qu'une regex est pour. L'exemple de Silentghost est ce que vous recherchez.
Oui, je sais que ce n'est pas ce que les regex ont été faits pour, mais je pourrais utiliser une regex pour correspondre et comme modèle dans mon cas.
Il est utile que la construction d'URL telles que Django se trouve dans
{% URL%}} code> tag.Ce serait très utile. Ce serait génial si vous pouviez générer des URL (c'est-à-dire une mise en forme de chaîne) avec le même code que vous utilisez pour rouler les URL (c'est-à-dire des expressions régulières).
Je viens de mettre quelque chose comme ça ensemble ... voyez ci-dessous.
Une note de plus: Si vous utilisez ceci pour les URL et que vous utilisez cette utilisation sur le cadre de Django, consultez la fonction
inverse code>, qui génère des URL basées sur votre routeur URL: docs.djangoproject.com/fr/dev/ref/urlresolvers