使用re.search()而不是re.match()仅匹配字符串

时间:2017-10-09 09:33:02

标签: python regex

我目前有一个函数检查列表中与给定正则表达式匹配的所有字符串。

例如,我会这样做:

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模式下也紧跟在换行符之后。

但由于我不知道正则表达式,我很难理解这句话。

0 个答案:

没有答案