Python正则表达式,如果字符串中的所有单词

时间:2016-11-28 09:48:08

标签: python regex

我有以下字符串,我需要检查是否

  • 该字符串包含App2 iPhone,
  • 但不是App iPhone

我写了以下内容:

campaign_keywords = "App2 iPhone"
my_string = "[Love]App2 iPhone Argentina"
pattern = re.compile("r'\b" + campaign_keywords + "\b")
print pattern.search(my_string)

它打印无。为什么呢?

1 个答案:

答案 0 :(得分:2)

  1. 原始字符串表示法错误,r不应在引号内。第二个\b也应该是一个原始字符串。
  2. match函数尝试在字符串的开头匹配。您需要使用searchfindall

    Difference between re.search and re.match

  3. 示例

     >>> pattern = re.compile(r"\b" + campaign_keywords + r"\b")
    
     >>> pattern.findall(my_string)
     ['App2 iPhone']
    
     >>> pattern.match(my_string)
    
     >>> pattern.search(my_string)
     <_sre.SRE_Match object at 0x10ca2fbf8>
     >>> match = pattern.search(my_string)
     >>> match.group()
     'App2 iPhone'