У меня есть список regexes в Python и строка. Существует ли изящный способ проверить, соответствует ли по крайней мере один regex в списке строке? Изящным я имею в виду что-то лучше, чем просто цикличное выполнение через все regexes и проверку их против строки и остановки, если соответствие найдено.
В основном у меня был этот код:
list = ['something','another','thing','hello']
string = 'hi'
if string in list:
pass # do something
else:
pass # do something else
Теперь я хотел бы иметь некоторые регулярные выражения в списке, а не просто представляю в виде строки, и я задаюсь вопросом, существует ли изящное решение проверить на соответствие для замены if string in list:
.
Заранее спасибо.
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!"
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!'