使用python look back隔离字符串的一部分

2024-03-28 20:09:29 发布

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

我试图使用regex来匹配字符串的一部分,但我不知道我在哪里弄乱了语法。你知道吗

string = 'Item key: 0.1234 xY ( -2.6 GMc)'
match = re.search(r'(?<=\( )([^ GMc]*)', string)
print(match)

我试图得到的值是-2.6(不带“”),但实际得到的是 <_sre.sre\u匹配对象;span=(22,26),匹配='-2.6'>

我知道关于芬德尔()例如,将创建一个匹配为列表的值列表,即使列表中有一个项目,但这正是我尝试使用“搜索”和“向前看/向后看”解决的问题。你知道吗

我正在win32上使用Python3.4.3


Tags: key字符串ltre列表searchstringmatch
1条回答
网友
1楼 · 发布于 2024-03-28 20:09:29

您需要使用肯定的先行断言。^正则表达式中的{}匹配任何字符,但不匹配空格或GMc,零次或多次。也就是说,一旦找到character类中存在的任何一个模式,它就会停止匹配。不是全部。你知道吗

>>> import re
>>> string = 'Item key: 0.1234 xY ( -2.6 GMc)'
>>> re.search(r'(?<=\( ).*?(?= GMc)', string).group()
'-2.6'

(?<=\( )紧跟在space(之后,并匹配.*?任何字符零次或多次,直到找到字符串<space>GMc。你知道吗

相关问题 更多 >