在Python中正确使用缩略语的正则表达式

时间:2016-02-05 07:20:02

标签: python regex

我想在文本中找到所谓的缩略语,这是为它定义正则表达式的正确方法吗? 我的想法是,如果某些东西以资本开头,以大写字母结尾,那么它就是首字母缩略词。这是对的吗?

import re
test_string = "Department of Something is called DOS, 
or DoS,  or (DiS) or D.O.S. in United State of America, U.S.A./ USA"
pattern3=r'([A-Z][a-zA-Z]*[A-Z]|(?:[A-Z]\.)+)'
print re.findall(pattern3, test_string)

和输出是:

['DOS', 'DoS', 'DiS', 'D.O.S.', 'U.S.A.', 'USA']

1 个答案:

答案 0 :(得分:1)

认为你可以使用单词boundary \ b anchor来做你想做的事情

>>> regex = r"\b[A-Z][a-zA-Z\.]*[A-Z]\b\.?"
>>> re.findall(regex, "AbIA AoP U.S.A.")
['AbIA', 'AoP', 'U.S.A.']