包含并忽略2个特殊字符之间的文本

时间:2016-03-21 11:06:05

标签: python regex regex-negation

我有一个类似于此的字符串。

str1=r'<st-button mode="positive" width="small" can-click="{loadConference}" id="meetingPasswordButton">{{i18n "ok"}}</st-button>'

我希望在<>之间加入所有内容,并拒绝</>之间的所有内容。

我尝试使用以下代码包含和拒绝这些特殊字符之间的文本。但我无法得到输出。帮我解决这个问题。

代码:

import re
pat = r'(?<=\<).+?(?=\>)' or r'(?<!\</).+?(?!\>)'   

s = r'<st-button mode="positive" width="small" can-click="{loadConference}" id="meetingPasswordButton">{{i18n "ok"}}</st-button>'


print (re.findall(pat, s))

2 个答案:

答案 0 :(得分:0)

正则表达式将返回<>之间的数据:

print(re.findall('<((?!/).*?)>', s))

输出:

['st-button mode="positive" width="small" can-click="{loadConference}"id="meetingPasswordButton"']

答案 1 :(得分:0)

>>> import re
>>> s = r'<st-button mode="positive" width="small" can-click="{loadConference}" id="meetingPasswordButton">{{i18n "ok"}}</st-button>'
>>> print re.findall(r'<([^\/].*?)>', s)
['st-button mode="positive" width="small" can-click="{loadConference}" id="meetingPasswordButton"']