我正在尝试学习如何使用正则表达式,但是有一个问题。假设我有以下字符串:
line = 'Cow Apple think Woof`
我想要查看line
是否至少有两个以大写字母开头的单词(当然,它确实有)。在Python中,我尝试了以下代码:
我想要检查line
中是否有至少两个以大写字母开头的单词(当然,它确实有)。在Python中,我尝试了以下操作:
import re
test = re.search(r'(\b[A-Z]([a-z])*\b){2,}',line)
print(bool(test))
但是它会打印出 False
。如果我改为:
test = re.search(r'(\b[A-Z]([a-z])*\b)',line)
我发现print(test.group(1))
是Cow
,而print(test.group(2))
是第一个匹配项的最后一个字母w
(test.group
中没有其他元素)。
对于如何准确定位此问题和/或如何更好地解决该问题,您有什么建议吗?
re.findall(r'\b[A-Z][a-z]+\b', line)
就足够了。 - Wiktor Stribiżew