我正在尝试在Python中使用正则表达式来匹配由句点分隔的首字母缩略词。我有以下代码:
import re
test_string = "U.S.A."
pattern = r'([A-Z]\.)+'
print re.findall(pattern, test_string)
结果是:
['A.']
我很困惑为什么这是结果。我知道+是贪婪的,但为什么是[A-Z] \的第一次出现。忽略?
答案 0 :(得分:3)
正则表达式中的(...)
创建一个组。我建议改为:
pattern = r'(?:[A-Z]\.)+'
答案 1 :(得分:3)
这个正则表达式将:
U.S.A.
之类的所有首字母缩略词 (?:(?<=\.|\s)[A-Z]\.)+
直播示例:http://www.rubular.com/r/9bslFxvfzQ
示例文字
This is the U.S.A. we have RADAR.
<强>匹配强>
U.S.A