尝试使用regex Python提取字符串

2024-04-25 20:22:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用正则表达式(re-module)从python2.7中的字符串中提取一部分。在

我能得到的最好的就是

res = "{{PakBusPort_somename} 11942 pakbus-port 1}\r\n{{Somename} 5436 CR800-series 2}"
p = re.compile('PakBusPort_')
m = p.findall( res )

这会给我“PakBusPort_u”。但我也需要它来给我一个“名字”的部分。在

基本上,我需要介于{和}之间,以“PakBusPort”开头的所有内容。我试过了

p = re.compile('PakBusPort_.*}}')

但没有结果。在

我有点不懂正则表达式,所以任何帮助都将不胜感激。在


Tags: 字符串re内容portres名字seriesmodule
2条回答
In [71]: p = re.compile(r'{PakBusPort_(.*?)}')

In [72]: p.findall(res)
Out[72]: ['somename']

如果还需要包括PakBusPort_,请移动左括号:

^{pr2}$

问号是使匹配非贪婪所必需的,这意味着它将在第一个}处停止,而不是直到最后一个匹配所有内容。在

你很接近,这应该会给你一个匹配正则表达式的元组列表:

res = '{{PakBusPort_somename} 11942 pakbus-port 1}\r\n{{Somename} 5436 CR800-series 2}'
p = re.compile('{(PakBusPort)_([^}]*)}')
m = p.findall( res )
print m

[('PakBusPort', 'somename')]

相关问题 更多 >

    热门问题