作者:夜凄凉2502887267 | 来源:互联网 | 2023-09-14 13:01
我正在使用正则表达式,我得到错误:
Traceback (most recent call last):
File "tokennet.py", line 825, in
RunIt(ContentToRun,Content[0])
File "tokennet.py", line 401, in RunIt
if re.search(r'\b'+word+r'\b', str1) and re.search(r'\b'+otherWord+r'\b', str1) and word != otherWord:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 142, in search
return _compile(pattern, flags).search(string)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 242, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat
我环顾四周,似乎这个错误与*有关,但不确定为什么我会得到它. str1如何停止获取它我该怎么办? str1是一个海量文本文件中的一行,当我打印str1以查看特别是哪个行是bugging时,它看起来像一条普通的行……
解决方法:
我建议你使用re.escape(word),因为你的变量字可能包含任何正则表达式特殊字符.我认为错误是因为变量中存在特殊字符.通过使用re.escape(变量名),它可以转义变量中存在的任何特殊字符.
if re.search(r'\b'+re.escape(word)+r'\b', str1) and re.search(r'\b'+re.escape(otherWord)+r'\b', str1) and word != otherWord: