如何在python中从字符串中提取令牌?

如何在python中从字符串中提取令牌?,python,regex,Python,Regex,我对Python非常陌生,我知道Perl可以做到这一点,但我还没有在Python中找到它。 我要做的是从一行中提取一个令牌 p = re.compile('555=\d+') ID = p.findall(line) 其中,行是文件中的单行,应记录555=之后的数字。但是,有了这两行,我只能得到555=1234567这样的东西,我真正想要的是1234567。有人能帮忙并提出解决方案吗? 谢谢 使用()捕获所需内容: >>> p = re.compile('555=(\d+)'

我对Python非常陌生,我知道Perl可以做到这一点,但我还没有在Python中找到它。 我要做的是从一行中提取一个令牌

p = re.compile('555=\d+')
ID = p.findall(line)
其中,行是文件中的单行,应记录555=之后的数字。但是,有了这两行,我只能得到555=1234567这样的东西,我真正想要的是1234567。有人能帮忙并提出解决方案吗? 谢谢

使用
()
捕获所需内容:

>>> p = re.compile('555=(\d+)')
>>> p.findall("555=1234567")
['1234567']
(…)

匹配括号内的任何正则表达式, 并指示组的开始和结束;组的内容 可以在执行匹配后检索,并且可以进行匹配 后面的字符串中使用\number特殊序列


应该使用“()”捕获所需的表达式。
因此,表达式应该是
p=re.compile('555=(\d+))

使用
搜索方法(仅用于一个匹配项),而不是
findall
(用于多个匹配项)。您必须将模式放入原始字符串
r'555=\d+'
或转义反斜杠
'555=\\d+'
。如果您只想提取右侧的值,请使用捕获组,或者,为什么不使用lookback(但速度较慢)。