我有一个包含数千个实体名称的“entity_set”,例如:
["CQ", "Pi", "+1", "M"]
有些行包含其中一个实体,例如,
line1 = "What is M ?"
line2 = "Who writes +1 ?"
我正在使用 re.search()
来匹配它,但是当它与“+1”匹配时出现错误:
sre_constants.error: nothing to repeat at position 0
原因是“+1”包含特殊符号“+”。
这是我的代码:
for line in lines:
for entity in entity_set:
if re.search(r'{0}\s'.format(entity), line):
STATEMENTS
如何修复我的代码?任何帮助将不胜感激。
最佳答案
任何时候你在正则表达式中使用文字文本(即不应被正则表达式引擎解释的文本),首先通过 re.escape
传递它:
re.search(r'{0}\s'.format(re.escape(entity)), line)
关于python - 如何在一行中搜索带有特殊符号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57404786/