作者:平凡天使心619 | 来源:互联网 | 2023-09-09 11:36
我正在尝试匹配输出变量中的数据,我希望匹配*后的单词,我尝试采用以下方式,但遇到错误,如何解决?importreoutputtest*Peacemastermre.se
我正在尝试匹配输出变量中的数据,我希望匹配*后的单词,我尝试采用以下方式,但遇到错误,如何解决?
import re
output = """test
* Peace
master"""
m = re.search('* (\w+)', output)
print m.group(0)
错误:-
Traceback (most recent call last):
File "testinglogic.py", line 7, in
m = re.search('* (\w+)', output)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 146, in search
return _compile(pattern, flags).search(string)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 251, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat
解决方法:
第一个解决方法是转义*,因为您希望引擎按字面意义对待它(作为一个星号),因此您要使用反斜杠对其进行转义.
另一个建议是使用后向跟踪,因此您不需要使用另一个捕获组:
>>> re.search('(?<=\*\s)\w+', output).group()
'Peace'