Python Regex搜索耗时太长

时间:2012-11-21 11:48:39

标签: python regex

正则表达式比较后花费的时间太长(> 2分钟)。

re.search('^(\S+){2,50}/(\S+){2,50}\-trailing/$', 'test-request/this-is-crashing/')

删除长度限制({2-50}),解决了问题。

模式中的错误是什么?

环境:Ubuntu i5 4GB Python 2.7.3

2 个答案:

答案 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/'