2016-07-06 27 views
1

Ich habe ein Muster, das die Tags in diesem Format finden, <. *:. *>. Von verschachtelten Tags nehme ich nur das Kind-Tag. Hier muss ich die Klammern (< und>) von '/ <' und '/>' unterscheiden. Gibt es eine Möglichkeit, dass ich das in dem gleichen Muster selbst machen kann?Unterscheiden Sie</ <von <in Python

zB: Eingabestring

<testing this> any text </<this is not a tag>any text<this will fail/>> 

Ausgang:

['<testing this>','</<this is not a tag>','<this will fail/>>'] 

Jeder Vorschlag, lass es mich wissen.

+3

Es sieht unangenehm wie Sie [X] HTML mit Regex zu analysieren versuchen. [Do not.] (Http://stackoverflow.com/a/1732454/3001761) Benutze einen Parser, dafür sind sie da! – jonrsharpe

+1

Wenn Sie RegEx verwenden möchten, sollten Sie einen LookBehind verwenden. – CodenameLambda

+0

was bedeutet '/ <'? Bist du sicher, dass es nicht ' Aprillion

Antwort

0

Verwenden Sie dieses Muster:

(?<!/)<.*?(?<!/)> 

Die (?<!/) ist eine negative Lookbehind, die dort versichert ist kein Slash direkt links von jedem < oder >, ohne den Charakter tatsächlich zu verbrauchen.

Check this pattern out on regex101.com