关于姓名的正则表达怎么写?
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]*)
以上是关于关于姓名的正则表达怎么写?的主要内容,如果未能解决你的问题,请参考以下文章