我正在寻找一个正则表达式来匹配N.A.S.A.等首字母缩写词。但也没有结束点的N.A.S.A。 此解决方案RegEx to match acronyms有效,但仅适用于以'。'结尾的缩写。
匹配“ N.A.S.A”和“ N.A.S.A.”的任何想法?
答案 0 :(得分:0)
\b(?:[a-zA-Z]\.){2,}
解决方案将非捕获组内部的模式重复2次或更多次。您需要确保最后不需要.
:
\b[a-zA-Z](?:\.[a-zA-Z])+\b
要在最后一个字母后也匹配.
,请添加\.?
:
\b[a-zA-Z](?:\.[a-zA-Z])+\b\.?
请参见regex demo
注意:仅匹配大写字母,请删除a-z
。
模式匹配
\b
-前导词边界[a-zA-Z]
-1个ASCII字母(?:\.[a-zA-Z])+
-1个或更多(因此,至少需要2个字母)重复
\.
-点[a-zA-Z]
-1个ASCII字母\b
-尾随单词边界\.?
-1或0 .
个字符。 PS :要启用任何Unicode字母支持,请将[a-zA-Z]
替换为\p{L}
,将[A-Z]
替换为\p{Lu}
。
答案 1 :(得分:-1)
没关系;)
我是这样的:\b([a-z0-9]\.){1,}[a-z0-9]?\b