正则表达式以匹配所有首字母缩略词



我正在寻找一个正则表达式来匹配像 N.A.S.A.这样的首字母缩略词,但也匹配没有终点的 N.A.S.A。 此解决方案正则表达式用于匹配首字母缩略词有效,但仅适用于以"." 结尾的首字母缩略词。

有什么想法可以匹配"N.A.S.A"和"N.A.S.A."吗?

b(?:[a-zA-Z].){2,}解决方案在非捕获组中重复模式 2 次或更多次。您需要确保最后不需要.

b[a-zA-Z](?:.[a-zA-Z])+b

要匹配最后一个字母后面的.,请添加.?

b[a-zA-Z](?:.[a-zA-Z])+b.?

查看正则表达式演示

注意:要仅匹配大写字母,请删除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}

没关系;) 我是这样做的:b([a-z0-9].){1,}[a-z0-9]?b

最新更新