Java 正则表达式匹配非 GBK 编码字符 - 排除空格和标点符号

本文介绍如何使用 Java 正则表达式匹配字符串中非 GBK 编码字符,同时排除空格和标点符号。

示例:

在字符串 'BRITÂNIA COMPONENTES ELETRÔNICOS LTDA' 中匹配到 'Â' 和 'Ô'。

正则表达式:

(?<![\p{Punct}\s])[^\p{InGBK}&&\P{C}]

解释:

  • (?<![\p{Punct}\s]):使用负向零宽断言,匹配前面不是标点符号或空格的字符。
  • [^\p{InGBK}&&\P{C}]:使用字符类,匹配不是 GBK 编码范围内的字符且不是控制字符的字符。

代码示例:

String input = "BRITÂNIA COMPONENTES ELETRÔNICOS LTDA";
Pattern pattern = Pattern.compile("(?<![\p{Punct}\s])[^\p{InGBK}&&\P{C}]");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出结果:

Â
Ô

总结:

通过使用负向零宽断言和字符类,我们可以轻松地使用正则表达式匹配非 GBK 编码字符,并排除空格和标点符号。

Java 正则表达式匹配非 GBK 编码字符 - 排除空格和标点符号

原文地址: https://www.cveoy.top/t/topic/ofUM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录