【发布时间】:2011-03-03 17:07:39
【问题描述】:
我有一个 python 中的正则表达式列表和一个字符串。有没有一种优雅的方法来检查列表中的至少一个正则表达式是否与字符串匹配?优雅,我的意思是比简单地遍历所有正则表达式并根据字符串检查它们并在找到匹配项时停止更好。
基本上,我有这个代码:
list = ['something','another','thing','hello']
string = 'hi'
if string in list:
pass # do something
else:
pass # do something else
现在我想在列表中有一些正则表达式,而不仅仅是字符串,我想知道是否有一个优雅的解决方案来检查匹配以替换 if string in list:。
提前致谢。
【问题讨论】:
-
python 没有 emacs lisp 的 regexp-opt gnu.org/software/emacs/manual/html_node/elisp/…
-
你为什么不喜欢循环?
-
@MartinThoma 因为它是 O(n)
-
那么问题不应该是“优雅”,而是“小于 O(n)”。
-
a) 你的意思是“性能”而不是“优雅” b) 你想知道哪个正则表达式匹配(但这并不意味着你需要单独迭代每个正则表达式,这将不可扩展)。