正则表达式。匹配所有以两个字母开头的单词

时间:2017-05-15 15:19:19

标签: python regex

我希望找到以“Am”开头的所有单词,这是我到目前为止用python尝试的内容

import re
my_string = "America's mom, American"
re.findall(r'\b[Am][a-zA-Z]+\b', my_string)

但这是我得到的输出

['America', 'mom', 'American']

而不是我想要的

['America', 'American']

我知道正则表达式[Am]表示匹配Am,但是是否可以匹配Am

3 个答案:

答案 0 :(得分:4)

A,积极character class,与mimport re my_string = "America's mom, American" print(re.findall(r'\bAm[a-zA-Z]+\b', my_string)) # => ['America', 'American'] 匹配。要匹配字符的序列,您需要一个接一个地使用它们。

删除括号:

\b

请参阅Python demo

此模式详细信息

  • Am - 字边界
  • Am - 一系列匹配为序列[a-zA-Z]+
  • 的字符
  • \b - 一个或多个ASCII字母
  • git log - 一个单词边界。

答案 1 :(得分:3)

不要使用字符类:

[Am]

答案 2 :(得分:1)

re.findall(r'(Am\w+)', my_text, re.I)