我使用以下表达式时收到错误消息:re.sub(r"([^\s\w])(\s*\1)+","\\1","...")我在RegExr中检查了正则表达式,它.按预期返回。但是当我在Python中尝试时,出现以下错误消息:raise error, v # invalid expressionsre_constants.error: nothing to repeat有人可以解释一下吗?
3 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
那是“ *”和特殊字符之间的Python错误。
代替
re.compile(r"\w*")
尝试:
re.compile(r"[a-zA-Z0-9]*")
它可以工作,但是不能使用相同的正则表达式。
该错误似乎已在2.7.5和2.7.6之间修复。
HUWWW
TA贡献1874条经验 获得超12个赞
实际上,这不仅是带有*的Python错误,而且还可能在将字符串作为要编译的正则表达式的一部分传递时发生,例如;
import re
input_line = "string from any input source"
processed_line= "text to be edited with {}".format(input_line)
target = "text to be searched"
re.search(processed_line, target)
如果处理过的行包含一些“(+)”(例如,您可以在化学式中找到)或此类字符链,则将导致错误。解决方案是逃脱,但是当您即时进行操作时,可能会发生无法正确执行操作的情况...
添加回答
举报
0/150
提交
取消