我有以下正则表达式:
pattern = re.compile("([a-z]+-*[a-z]+)+$")
但是当我运行时:
pattern.match("departamento-de-archipielago-de-san-andres-providencia-y-santa-catalina")
行没有结束,即程序卡住了。
我试过:
pattern.match("departamento-de-archipielago-de-san-andres-providencia-y-")
它不起作用
最后,我尝试了:
pattern.match("departamento-de-archipielago-de-san-andres-providencia-y")
这确实有效! 我不明白这里出了什么问题。是错误吗?
我正在使用 python 3.5.2
最佳答案
re.compile("([a-z]+-[a-z]+)+$")
将更好地完成您正在尝试做的事情。您提供的正则表达式称为 pathological ,因为 -*
导致它以荒谬的可能性逃跑。
如果你真的想要多个连字符,-+
也可以。
关于python - 正则表达式卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48197501/