如何在Python中匹配这种字符串使用re?

时间:2014-02-24 15:55:33

标签: python regex string-matching

我有几个这样的字符串:

unicode 0, <runtime error >,0
unicode 0, <TLOSS error>
unicode 0, <- Attempt to use MSIL code >
unicode 0, <ModuleNameA>

我正在尝试使用re来匹配“&lt;”中的所有字符串“&gt;” 中

我试过了:

items = line.split()
pattern = r"<.+?>"
match = re.findall(pattern, items[2])

但似乎空间无法处理..

有人能给我一些帮助吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

items[2]包含部​​分内容:

>>> items = line.split()
>>> items[2]
'<runtime'

只需将line传递给re.findall

>>> line = 'unicode 0, <runtime error >,0'
>>> re.findall(r'<.+?>', line)
['<runtime error >']

答案 1 :(得分:1)

只是不要拆分它们并按原样使用字符串,就像这样

line = "unicode 0, <runtime error >,0"
import re
print(re.findall(r"<.+?>", line))
# ['<runtime error >']

如果你只想要里面的字符串,你可以做

print(re.search(r"<(.+?)>", line).group(1))
# runtime error