关于姓名的正则表达怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于姓名的正则表达怎么写?相关的知识,希望对你有一定的参考价值。

我现在需要中文姓名的正则,但是这里的中文姓名里包括普通的汉族姓名,即多个连续汉字,还包括少数名族姓名,比如(热合曼将·买买提)两段汉字中间有个点,应该如何写正则,要同时包括两种姓名的验证的正则!

正则[^·\u4e00-\u9fa5]([·\u4e00-\u9fa5]+?)[^·\u4e00-\u9fa5]
测试代码:
public static void main(String[] _s)
String s = "00)@!1中文名字一00%$ #$% 2--1中文·名字二23 ( 4【中文名字三34325%&$中文·名字四sdfsd";//杂乱混合文字
Pattern p = Pattern.compile("[^·\u4e00-\u9fa5]([·\u4e00-\u9fa5]+?)[^·\u4e00-\u9fa5]");
Matcher m = p.matcher(s);
while (m.find())
System.out.println(m.group(1));
if (m.end() < s.length())
s = s.substring(m.end());




输出结果是:

中文名字一
中文·名字二
中文名字三
中文·名字四
参考技术A 2楼的不错,不过很明显1个字的你也通过了。
var cat = /(?:[\u4E00-\u9FFF]1,8·\u4E00-\u9FFF]1,8)|(?:[\u4E00-\u9FFF]2,5)/
alert(cat.test(str))
参考技术B 没必要那么复杂,这样就好。

([\u4E00-\u9FFF]+)(·?[\u4E00-\u9FFF]*)

以上是关于关于姓名的正则表达怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式怎么写?

关于正则表达式问题

java中检查姓名的正则表达式

正则表达式:匹配指定字符后面的字符怎样实现?

正则表达式,匹配特定字符后面的内容

jQuery1990到2008年的正则表达式怎么写?