Python:优雅地检查列表中至少一个正则表达式是否匹配字符串
我在Python中有一组正则表达式和一个字符串。我想知道有没有更好的方法来检查这组正则表达式中是否至少有一个能匹配这个字符串。这里的“更好”是指比简单地一个一个循环检查正则表达式要好,找到匹配后就停止。
基本上,我之前的代码是这样的:
list = ['something','another','thing','hello']
string = 'hi'
if string in list:
pass # do something
else:
pass # do something else
现在我想在列表中放一些正则表达式,而不仅仅是字符串。我在想有没有什么优雅的办法来检查匹配,以替代 if string in list:
这行代码。
6 个回答
15
根据其他人的回答,我选择了这个方案:
raw_list = ["some_regex","some_regex","some_regex","some_regex"]
reg_list = map(re.compile, raw_list)
mystring = "some_string"
if any(regex.match(mystring) for regex in reg_list):
print("matched")
105
这段代码是用来处理一些特定的功能的。它可能涉及到一些编程的基本概念,比如变量、循环和条件判断等。对于刚开始学习编程的人来说,理解这些概念是非常重要的。
在这段代码中,可能会有一些操作,比如获取用户输入、进行计算或者输出结果。每一行代码都有它的作用,帮助程序完成特定的任务。
如果你对代码中的某些部分不太明白,可以尝试逐行分析,看看每一行是做什么的,或者查找相关的资料来加深理解。编程的学习过程就是不断探索和实践的过程。
import re
regexes = [
# your regexes here
re.compile('hi'),
# re.compile(...),
# re.compile(...),
# re.compile(...),
]
mystring = 'hi'
if any(regex.match(mystring) for regex in regexes):
print 'Some regex matched!'
111
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这就像是把水从一个水桶倒到另一个水桶里。
有些时候,我们会遇到一些问题,比如数据的格式不对,或者数据的类型不匹配。这就像是你想把牛奶倒进一个只适合装果汁的瓶子里,这样就会出问题。
为了避免这些问题,我们可以使用一些工具和方法来确保数据能够正确地传递和使用。这就像是使用一个漏斗来帮助你把牛奶倒进瓶子里,这样就不会洒出来了。
总之,处理数据时要注意格式和类型,确保它们能够顺利地流动和使用。
import re
regexes = [
"foo.*",
"bar.*",
"qu*x"
]
# Make a regex that matches if any of our regexes match.
combined = "(" + ")|(".join(regexes) + ")"
if re.match(combined, mystring):
print "Some regex matched!"