在Python中使用Regex查找首字母缩略词

在Python中使用Regex查找首字母缩略词,python,regex,acronym,Python,Regex,Acronym,我试图在Python中使用正则表达式来匹配由句点分隔的首字母缩略词。我有以下代码: import re test_string = "U.S.A." pattern = r'([A-Z]\.)+' print re.findall(pattern, test_string) 其结果是: ['A.'] 我不明白为什么会有这样的结果。我知道+是贪婪的,但是为什么第一次出现[A-Z]\。忽略?正则表达式中的(…)创建一个组。我建议改为: pattern = r'(?:[A-Z]\.)+' 描述

我试图在Python中使用正则表达式来匹配由句点分隔的首字母缩略词。我有以下代码:

import re
test_string = "U.S.A."
pattern = r'([A-Z]\.)+'
print re.findall(pattern, test_string)
其结果是:

['A.']
我不明白为什么会有这样的结果。我知道+是贪婪的,但是为什么第一次出现[A-Z]\。忽略?

正则表达式中的
(…)
创建一个组。我建议改为:

pattern = r'(?:[A-Z]\.)+'
描述 该正则表达式将:

  • 在一个句子中捕获所有首字母缩写词,如
    U.S.A.
  • 避免在句末匹配大写单词

(?:(?谢谢,这很管用。我用Python的正则表达式研究了更多的“组”。现在它有了意义。
This is the U.S.A. we have RADAR.
U.S.A