我希望找到以“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]
表示匹配A
或m
,但是是否可以匹配A
和m
?
答案 0 :(得分:4)
A
,积极character class,与m
或import 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)