2010-03-10 5 views
0

Je veux utiliser cette expression régulière en Python:Comment convertir cette expression régulière en Python

<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+> 

(de RegEx match open tags except XHTML self-contained tags)

def removeHtmlTags(page): 
    p = re.compile(r'XXXX') 
    return p.sub('', page) 

Il semble que je ne peux pas remplacer directement l'expression régulière complexe dans la fonction ci-dessus.

+0

Quelle est l'erreur ou le problème que vous avez? –

+0

Es-tu en train d'échapper aux apostrophes dans l'expression rationnelle avec un backslash? Pouvons-nous voir le vrai code que vous avez qui ne fonctionne pas? – Tom

+0

qui m'aide: https://regex101.com/ (vérifiez la saveur de python) – JinSnow

Répondre

1

Fonctionne bien ici. Vous avez probablement des problèmes à cause des citations. Juste triple guillemet il:

def removeHtmlTags(page): 
    p = re.compile(r'''<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>''') 
    return p.sub('', page) 
0

Si vous devez supprimer les balises HTML, cela devrait le faire:

import re 

def removeHtmlTags(page): 
    pattern = re.compile(r'\<[^>]+\>', re.I) 
    return pattern.sub('', page) 
+0

Ce n'était pas la question, mais le point de l'expression rationnelle originale est de permettre des chevrons dans les valeurs d'attribut. –

Questions connexes