在 Python 中使用正则表达式查找首字母缩略词

jmu*_*mer 3 python regex acronym

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

import re
test_string = "U.S.A."
pattern = r'([A-Z]\.)+'
print re.findall(pattern, test_string)
Run Code Online (Sandbox Code Playgroud)

结果是:

['A.']
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么会出现这样的结果。我知道+是贪婪的,但为什么是第一次出现[AZ]\。被忽视?

Ro *_* Mi 5

描述

该正则表达式将:

  • U.S.A.捕获句子中的所有首字母缩略词
  • 避免在句子末尾匹配大写单词

(?:(?<=\.|\s)[A-Z]\.)+

在此输入图像描述

例子

实例: http: //www.rubular.com/r/9bslFxvfzQ

示例文本

This is the U.S.A. we have RADAR.
Run Code Online (Sandbox Code Playgroud)

火柴

U.S.A
Run Code Online (Sandbox Code Playgroud)