java如何判断字符串中是否包含数字字母汉字之外的字符,如何替换字符串中除字母数字汉字之外的字符? 您所在的位置:网站首页 不能使用汉字作为微信号什么意思 java如何判断字符串中是否包含数字字母汉字之外的字符,如何替换字符串中除字母数字汉字之外的字符?

java如何判断字符串中是否包含数字字母汉字之外的字符,如何替换字符串中除字母数字汉字之外的字符?

2024-07-11 01:26| 来源: 网络整理| 查看: 265

文章目录 1. 判断字符串中是否包含数字字母汉字之外的字符1.1 方法内1.2 接口入参验证 2. 替换字符串中除字母数字汉字之外的字符3. \p{Script=Han} 匹配所有汉字

1. 判断字符串中是否包含数字字母汉字之外的字符 1.1 方法内 String b ="123aA-"; Pattern pattern = Pattern.compile("^[a-zA-Z0-9\\p{Script=Han}]+$"); Matcher matcher = pattern.matcher(b); System.out.println(matcher.matches());

全部是字母数字汉字,返回true 有字母数字汉字之外的字符,返回false “123aA-”:返回false “123aA”:返回true “123”:true

^: 表示匹配字符串的开始。 [a-zA-Z0-9]: 表示字符类,匹配任何一个字母(大小写)或数字。 \\p{Script=Han}: 使用 Unicode 属性,匹配任何汉字字符。 +: 表示匹配前面的字符类(字母、数字和汉字)一次或多次。 $: 表示匹配字符串的结尾。 1.2 接口入参验证 import javax.validation.constraints.Pattern; public class A { @Pattern(regexp = "^[a-zA-Z0-9\\p{Script=Han}]+$", message = "只能包含字母数字汉字!") private String b; ... }

Controller

import org.springframework.validation.annotation.Validated; @RestController @RequestMapping("/abc") public class AbcController { @PostMapping("/abc") public void abc(@RequestBody @Validated A a) { ... } } 2. 替换字符串中除字母数字汉字之外的字符 String a = "··zxcc····cc··▪▪c一刘甪鉨㘗123c▪▪▪vv·"; // replace:匹配字符;replaceAll:优先匹配正则,也可以匹配字符。共同点是:两者都是全部替换 System.out.println(a.replaceAll("[^0-9a-zA-Z\\p{Script=Han}]", ""));// 结果:zxccccc一刘甪鉨㘗123cvv "[^0-9a-zA-Z\p{Script=Han}]" [^...]: 表示否定字符类,匹配不在括号内的任何一个字符。 0-9: 匹配任何数字。 a-zA-Z: 匹配任何字母(大小写)。 \\p{Script=Han}: 使用 Unicode 属性,匹配任何汉字字符。 因此,这个正则表达式表示匹配任何不是数字、字母(大小写)或汉字的字符。 3. \p{Script=Han} 匹配所有汉字

\p{Script=Han} 表示匹配所有汉字字符。这样,无论将来 Unicode 是否有扩展,只要是属于汉字的字符,都可以被匹配。这样的写法使得你不需要在代码中更改范围,而是使用 Unicode 属性,更加灵活和健壮。

\u4e00-\u9fa5 之类的也可以匹配汉字,但汉字在不停扩充,新扩充的不包含在内。

下面是几个主要的非英文语系字符范围:

2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。 3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。 4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。 A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。 AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。 F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。 FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有