2011-04-26 4 views
1

Comment implémenteriez-vous emphasis de Markddown ou bold avec des expressions régulières?Markdown emphase - re substitution

Ou comment est-il possible de remplacer re \*\*(.*)\*\* avec ce qui est à l'intérieur ** **?

+0

mettre en œuvre? Regex sont simplement des modèles. Ce que vous faites avec le modèle dépend de vous et de la langue de votre choix. –

Répondre

3

Vous pouvez utiliser re.sub():

import re 

myRegex = re.compile(r"\*\*(.+?)\*\*") 
string = "some **text** and some **more**" 

output = myRegex.sub(r"\1", string) 
+1

-1: Cela ne fonctionne que s'il y a un seul bloc dans la chaîne (c'est-à-dire, '' chaîne = "du texte ** ** plus ** autre texte **' 'échoue) .Vous devez utiliser l'expression régulière pour faire remplacement: '' output = myRegex.sub ('\\ 1', chaîne) '' – Blair

+0

Bon point, j'aurais juste bouclé la recherche jusqu'à ce qu'il n'y ait plus de résultats, mais ton chemin est beaucoup plus élégant. – erbridge

+0

Quelle est la signification de 'r" \ 1 "'? – Halst

2

Je pense que Fantasizer a la bonne idée.

De plus, vous devriez jeter un oeil à Python basé Markdown Library

regarder précisément par inlinepatterns.py pour voir comment ils correspondent à « fort » (gras) et « l'accent »