【问题标题】:RegEx to match acronyms in Java正则表达式匹配 Java 中的首字母缩略词
【发布时间】:2021-09-04 07:08:11
【问题描述】:

我正在尝试编写一个程序来匹配高级首字母缩写词,例如

eCRM
L&T
T/C
Top/Bo
e-TV
SDLC
RA/VI
Ra&Vi
RaVi
JB007

我试过但没有解决:

public static boolean isAcronyms(String s){
        return s.matches("\\b([a-zA-Z]\\.){2,}(?=\\s|$)");
    //    return s.matches("[A-Z].*[A-Z]");
     //   return s.matches("\\b(?:\\p{Ll}*\\p{Lu}){2}\\p{Ll}*\\b");
    }

我喜欢做的是一个至少有两个大写字母的单词,带或不带任何其他字母(特殊字符、数字)或数字。

【问题讨论】:

  • 请澄清一下,您需要正则表达式来测试什么条件?目前听起来任何至少有 2 个大写字母的字符串都应该匹配?
  • 可以只有一个特殊字符充当某种分隔符吗?这些首字母缩略词的长度是否也有任何限制?离题;很多这样的例子不是首字母缩写词,而是缩写顺便说一句。

标签: java regex


【解决方案1】:

您可以使用以下正则表达式模式:

[\p{P}\p{S}\w]*[A-Z][\p{P}\p{S}\w]*[A-Z][\p{P}\p{S}\w]*

Java 代码:

public static boolean isAcronym(String s) {
    return s.matches("[\\p{P}\\p{S}\\w]*[A-Z][\\p{P}\\p{S}\\w]*[A-Z][\\p{P}\\p{S}\\w]*");

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多