java正则表达式的用法-创新互联
这篇文章给大家分享的是有关java正则表达式的使用方法。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
创新互联主打移动网站、成都做网站、网站建设、网站改版、网络推广、网站维护、空间域名、等互联网信息服务,为各行业提供服务。在技术实力的保障下,我们为客户承诺稳定,放心的服务,根据网站的内容与功能再决定采用什么样的设计。最后,要实现符合网站需求的内容、功能与设计,我们还会规划稳定安全的技术方案做保障。字符组
在一对方括号 [ 和 ] 之间列出所有可能出现的字符,包括可见以及不可见的字符;例如:
[123]
表示可以匹配1、2、3的单个字符。
1字符组的范围表示
如果可以匹配的字符有规律性并且范围比较大,比如0、1、2、3、4、5、6、7、8、9,表达式写成
[0123456789]
这样就显得复杂也不美观,所以引入符号“-”,使用 [x-y] 的形式表示在闭区间x到y范围内的字符,上式可以写成
[0-9]
【注意】:-范围表示法必须遵循ASCII编码的先后顺序,即上式不可写作 [9-0] ,而一些令人困惑的表达式也尽量不要使用,比如 [0-z] 因为该式涵盖了在ASCII编码表中从0到z的全部字符(不仅仅只有数字和小写字母)。如果想要表示多个范围,比如匹配数字、大写字母和小写字母,表达式可以写作
[0-9a-zA-Z]
2元字符与转义
在表达式中有特殊功能而不作为字符的一部分字符,称为元字符。比如前文讲过的:[ ] - 都是元字符,如果想要恢复它们本来的字符属性就要做一些特殊处理。先看一般情况,取消元字符特殊含义的操作叫做转义,操作是在表达式中的元字符前加反斜杠 。特殊情况就是表示范围的横线 - ,当其紧邻左方括号 [ 时就作为普通字符处理,其他情况都作为元字符表示范围。
【注意】
1、横线 - 也支持反斜杠的转义,即[0-9]表示0、-、9三个字符。
2、右方括号 ] 不需要转义。
3排除型字符组
当需要表示的字符组范围很大,写起来不方便,而恰巧它的补集(全集指所有字符)方便表示,引出了排除型字符组[^…] ,表示在当前位置匹配一个没有列出的字符,请注意是“必须匹配一个没有出现的字符”,而不是“不要匹配列出的字符”。例如:
[^0-9][^0-9]
可以匹配“QQ”,但不可以匹配“Q”。
【注意】紧跟在 ^ 之后的 - 不是一个元字符!而^自身也是元字符,当且仅当^紧跟[时,否则表示它作为字符的含义。
4字符组简记法
常见的字符组简记法有\d([0-9])、\w([0-9a-zA-Z_])、\s([\t\r\n\v\f])
【注意】w可以匹配下划线,不等价于[0-9a-zA-Z]。另外字符组简记法可以单独出现,也可以使用在字符组中,如[0-9a-zA-Z]
可以写成[\da-zA-Z]
正则表达式也提供了上面三种常用简记法的排除型:\D、\W、\S,这三种分别对应各自的补集(全集是指所有字符,即[dD]可以匹配任意字符,剩余二者同理)。
【再次注意】第一,使用字符组简记法最好不要出现单独的 - ;第二,上面描述的简记法都是针对ASCII编码而言的;第三,字符组简记法不止这三种,还有其他(也可能根据不同的编程语言衍生出新的简记法),等遇到了再说。
5字符组的运算
当我们所研究的问题要求我们的全集不是所有字符,排除型字符组就显得不是那么的好用了。比如我需要匹配字母表第1、5、9个小写字母,把所有字符看作全集显然不合适,而把所有小写字母看作全集就比较合适,但是写成[b-df-hj-z]就比较复杂而且容易搞错,Java就允许使用逻辑与(&&,也可以理解为取交集)来解决这个问题,即写成:
[a-z]&&[^aei]
看完上述内容,你们对java正则表达式有进一步的了解吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:java正则表达式的用法-创新互联
文章分享:http://myzitong.com/article/iiooc.html