2

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

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

结果是:

['A.']

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

4

2 回答 2

4

描述

这个正则表达式将:

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

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

在此处输入图像描述

例子

现场示例:http ://www.rubular.com/r/9bslFxvfzQ

示例文本

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

火柴

U.S.A
于 2013-07-22T04:18:51.337 回答
3

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

pattern = r'(?:[A-Z]\.)+'
于 2013-07-22T04:07:11.303 回答