正则表达式错误-无需重复

我使用以下表达式时收到错误消息:


re.sub(r"([^\s\w])(\s*\1)+","\\1","...")

我在RegExr中检查了正则表达式,它.按预期返回。但是当我在Python中尝试时,出现以下错误消息:


raise error, v # invalid expression

sre_constants.error: nothing to repeat

有人可以解释一下吗?


犯罪嫌疑人X
浏览 1297回答 3
3回答

跃然一笑

那是“ *”和特殊字符之间的Python错误。代替re.compile(r"\w*")尝试:re.compile(r"[a-zA-Z0-9]*")它可以工作,但是不能使用相同的正则表达式。该错误似乎已在2.7.5和2.7.6之间修复。

HUWWW

实际上,这不仅是带有*的Python错误,而且还可能在将字符串作为要编译的正则表达式的一部分传递时发生,例如;import reinput_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)如果处理过的行包含一些“(+)”(例如,您可以在化学式中找到)或此类字符链,则将导致错误。解决方案是逃脱,但是当您即时进行操作时,可能会发生无法正确执行操作的情况...
打开App,查看更多内容
随时随地看视频慕课网APP