如何在python中从字符串中提取令牌?
我对Python非常陌生,我知道Perl可以做到这一点,但我还没有在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+)'
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(但速度较慢)。