Python高效的模式发现:文本中的正则表达式v / s模式?

时间:2016-05-04 09:05:43

标签: python regex

我正在研究一个简单的案例,我需要在var adultprice = jList[0].adultprice; var childprice = jList[0].childprice; 中检查是否存在字符串(让我们说xyz)。

这将是一种更有效的方法:

given_text

OR

if 'xyz' in given_text:
    print 'found'

2 个答案:

答案 0 :(得分:1)

正如有人所说,in要快得多

>>> timeit.timeit('"xyz" in "abcxyz"', number=10000000)
0.5210642332803808
>>> timeit.timeit('re.search(p,"abcxyz")', number=10000000, setup='import re; p=re.compile("xyz")')
15.548494171928667
>>> timeit.timeit('p.search("abcxyz")', number=10000000, setup='import re; p=re.compile("xyz")')
3.41808299957313

我认为这是因为in只需要查看字符串。 regex是一个更复杂的工具,应该能够管理更复杂的情况,因此可能会因为管理这种复杂性的开销而变慢。

答案 1 :(得分:-1)

我们可以使用python正则表达式搜索模块以高效的方式完成它。

import re
matchobj = re.search(r"xyz",given_text)
if matchobj:
   print "Found"
else:
   print "Not Found"