正则表达式比较后花费的时间太长(> 2分钟)。
re.search('^(\S+){2,50}/(\S+){2,50}\-trailing/$', 'test-request/this-is-crashing/')
删除长度限制({2-50}),解决了问题。
模式中的错误是什么?
环境:Ubuntu i5 4GB Python 2.7.3
答案 0 :(得分:8)
(\S+){2,50}
你确定需要这个吗? \S+
表示一次或多次出现。然后你想要2-50次出现吗?
为什么不:
\S{2,50}
答案 1 :(得分:0)
为什么不让它变得更简单...
re.match('([^/]+)/([^/]+)-trailing/', 'test-request/this-is-crashing/')
虽然在这种情况下它找不到任何东西......
我想你只想捕捉与此相似的字符串:
'<SOME-TEXT>/<SOME-TEXT>-trailing/'