Products
GG网络技术分享 2025-03-18 16:14 4
姓名首字必须是汉字,从第二个字起可使用拼音,且一旦使用拼音后续文字都必须是拼音;姓名不可包含除.之外的特殊字符,且只能包含一个.(后台校验);规则不符合时提示“姓名首字必须是汉字,从第二个字起可使用拼音,且一旦使用拼音后续文字都必须是拼音,且不可包含除.以外的特殊符号,且仅能包含1个.
^(?!.*\\..*\\.)[\\u4e00-\\u9fa5]([\\u4e00-\\u9fa5\\.]*|[A-Za-z\\.]*)$
注意如果是在字符串中写正则表达式,所有的\\
都要写成\\\\
在编程语言中,除了容器集合、多线程并发、IO流等等基础组件之外,还有一项专门处理字符串的“奇淫巧技”,这就是正则表达式。Perl语言正是凭借强大的正则表达式才异军突起的。
对于Java来说,自从jdk1.7之后,正则表达式也逐渐强大起来,不再是之前的半吊子了。现在的Java也非吴下阿蒙,其正则表达式也不逊于其他主流语言了。
本篇将详细描述Java正则表达式的用法、技巧等等,让你领略一下正则表达式的强大功能。
由于内容较多,整个文章分为上中下三篇。上篇内容介绍 基础替代符号; 中篇内容介绍Java的正则组件以及相关API; 下篇内容特别介绍转义字符的使用。
何为正则表达式?英文称为Regular Expression。 其实这个翻译有点误导性,如果翻译成“规则表达式”,可能更好理解。
设想这么一个场景: 某一天,小舟同学在用word编辑文案,突然意识到某个单词好像拼写有误, 把Java 错写了Jave。 由于文字量比较大,手工一个个替换费时费力,好容易遗漏出错,但是好在word有自动替换功能,一键把全部Jave替换成Java即可。 但是,好景不长,小舟发现有些错误拼写成了Jave,还有些错误拼写成了Javo,还有Javq,Javz, Javd等等,还有连自己都不知道拼写成什么玩意的。
现在该怎么办? 小舟设想,如果有一个功能,能把以Jav开头的,不管第四个字母是什么,全部替换成Java。比如说,Jav*,以*代替任意字母,全部替换成Java。
这种以某些特殊字符来代替另外一些常用字符的表达方式,就称为正则表达式。另外,正则表达式是不限于编程语言的,在一些基本文字软件中,都有此类功能的集成。
在Java中, 把正则表达式的替代符号分为以下几类:
上面介绍的字符匹配符和范围控制符,一般是与数量控制符组合使用,才能发挥真正威力。 而数量控制符号,分为贪婪型,勉强型,和占有型三种类型,每种类型在不同的场合有不同的用法。
贪婪型
勉强型
相比于贪婪型,勉强型只是多了一个?:
占有型
相比于贪婪型,占有型多了一个 +
不同类型的区别
现在详细分析 贪婪型、勉强型和占有型的区别, 举例如下:
Demand feedback