首页 > 编程语言 > 详细

java正则表达式的坑

时间:2014-07-21 15:23:16      阅读:390      评论:0      收藏:0      [点我收藏+]

java中正则表达式比较有意思,这里列举几个常见的坑

1.[]符号,中括号表示其中的数据都是或的关系

如果[\\w+]是匹配条件 abc是否可以匹配的到呢?

首先\\w表示a-z A-Z 0-9 _多个字符组合,显然abc任意一个在里面的,后又有+号,表示有多个字符,所以abc可以匹配\\w+

但是[\\w+]表示的意思是多个字符的或,注意是或,所以[\\w+]等同于[a-z|A-Z|0-9|_],这里面的或只有单个字符

所以a或者b或者c都可以匹配[\\w+],但是abc不可以,如何让abc可以匹配呢很简单只需要将条件外面加上+号标识多个字符就可以了。

2.转义符号

java转义很麻烦各种\\,需要仔细理解

java中\是没有意义的,在字符串中你出现一个\,编译器会告诉你是错误的,不能这样

所以java中\\表示一个\。在正则表达式匹配中如匹配数字写的是\\d其实是\\表示一个\最后的效果是\d.

这个时候有人要问了,我只要匹配\d这个字符而不是匹配数字怎么办,这个时候需要在加一个转义符,告诉大家这个字符不是\d表示的数字,而是具体字符串\d,具体的结果是很蛋疼的在加上一个转义字符\\,所以会出现\\\\d,java会解析成\\d,表示对\d在做转义,就是单纯的\d。

再比如[\\]这个简单的表达式,如果你去调用则会报错,为什么?

因为java会认为你只传了一个转义符,而单独的转义符是没有意义的,如果你要匹配\号,需要的表达式是\\\\前面的\\表示转义符号,后面的\\表示真正匹配的\号。- -!

java转义字符关键是两个\\表示一个\,会让人费解,需要注意。

java正则表达式的坑

原文:http://blog.csdn.net/bjhecwq/article/details/38015443

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!