2016-07-06 5 views
1

У меня есть шаблон, который находит теги в этом формате, <. *:. *>. Из вложенных тегов я беру только дочерний тег. Здесь мне нужно отличить скобки (< и>) от '/ <' и '/>'. Есть ли способ, которым я могу сделать это в том же самом шаблоне?Distinguish/<from <in python

например: строка ввода

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

выход:

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

Любые предложения, пожалуйста, дайте мне знать.

+3

Это выглядит неуютно, как вы пытаетесь разобрать [X] HTML с регулярным выражением. [Не делать этого.] (Http://stackoverflow.com/a/1732454/3001761) Используйте синтаксический анализатор, для чего он нужен! – jonrsharpe

+1

Если вы хотите использовать RegEx, вы должны использовать LookBehind. – CodenameLambda

+0

Что означает '/ <'? вы уверены, что это не ' Aprillion

ответ

0

Используйте этот шаблон:

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

(?<!/) является отрицательным, что обеспечивает просмотр назад не слэш непосредственно слева от каждого < или > фактически не потребляя характер.

Check this pattern out on regex101.com