我目前有一个函数检查列表中与给定正则表达式匹配的所有字符串。
例如,我会这样做:
import re
for my_string in my_list:
if re.match(regex, my_string):
# If the string matches the regex, do something
但是,由于我使用re.match()
函数,因为我只能检查字符串开头的模式,所以它有点受限制。
我正在阅读此问题,以了解re.match()
和re.search()
之间的差异:
What is the difference between Python's re.search and re.match?
所以我计划在我的函数中使用re.search()
而不是re.match()
。但是,这里有一个问题:在大多数情况下,我仍然需要仅在字符串的开头检查模式。
所以我的问题是:如何仅在字符串的开头检查模式,而是使用re.search()
函数而不是re.match()
函数?
让我们来看一个基本情况,即我要查找以"foo"
开头的所有字符串。
我应该使用什么而不是re.match("foo", my_string)
?
我想这与我链接的问题中的以下引用有关:
请注意,即使使用常规,
match
也可能与search
不同 以'^'
开头的表达式:'^'
仅在开头时匹配 字符串,或在MULTILINE
模式下也紧跟在换行符之后。
但由于我不知道正则表达式,我很难理解这句话。