在Python中使用Regex查找缩略语

时间:2013-07-22 04:05:08

标签: python regex acronym

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

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

结果是:

['A.']

我很困惑为什么这是结果。我知道+是贪婪的,但为什么是[A-Z] \的第一次出现。忽略?

2 个答案:

答案 0 :(得分:3)

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

pattern = r'(?:[A-Z]\.)+'

答案 1 :(得分:3)

描述

这个正则表达式将:

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

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

enter image description here

实施例

直播示例:http://www.rubular.com/r/9bslFxvfzQ

示例文字

This is the U.S.A. we have RADAR.

<强>匹配

U.S.A