您的位置:首页 > 其它

正则表达式入门

2015-10-23 16:18 295 查看

基础知识

1,匹配汉字时,要先将汉字转换成unicode编码(网上有工具)再进行匹配,防止因编码不同而出现的问题。

2,使用"\"进行转义

3,不可见原子(空格、换行等无可见内容的字符)的匹配。空格:直接输入了一个空格即可进行匹配;制表符:用"\t"进行匹配;回车:用“\n”进行匹配

4,"|":或,用于匹配两个或多个分支,例如“q4|1”表示匹配"q4"或者"1",只要满足其中一个就能匹配成功。

5,[]和[^]:前者匹配中括号中任意一个原子,只要出现就能匹配成功。后者与前者相反。例如"[41d]"表示只有4,1,d三个中的任意一个出现都能匹配成功。中括号一次只拿里面的一个原子进行匹配(如上面的[41d]是将4,1,d分开进行匹配,并不会同时匹配两个原子),而|则一次只拿左边或右边进行匹配(无论左边或右边是否是一个单独的原子,如上面的q4就是拿q4的整体去匹配,并不会将q4拆分成q,4两个原子去匹配)。

6,截自:幕课网



7,量词。{n,m}出现次数为[n,m];{n}出现次数为n;{n,}表示出现次数大于等于n次;+表示出现次数大于等于1次;*表示出现的次数要大于等于0;?表示出现0次或者1次。

8,^用于限制匹配的字符串的开头,如^s表示要匹配的字符串必然以s开关,否则不匹配;$类似,只不过它用于控制结尾。如

String regex = "^\\s[0-9]+$";
Pattern p = Pattern.compile(regex);
Matcher matcher = p.matcher("234");
返回的就是false,因为^要求匹配的字符串必须以不可见原子开头。如果将"234"换成"[空格]234"就会匹配成功。

9,():将小括号中的当作一个原子进行匹配,不管小括号中放的是什么。如"(abc|e)ar"是可以匹配成功abcar和ear的。

Pattern

java中用来操作正则表达式的类。

CASE_INSENSITIVE:忽略整体大小写。如果想忽略某个字符的大小写,可以在该字符前加?i。如

(?i)abc 表示abc都忽略大小写
a(?i)bc 表示bc忽略大小写
a((?i)b)c 表示只有b忽略大小写
COMMENTS:忽略正则表达式中的空白。要注意:并不是忽略要进行匹配的字符串中的空白符,只是忽略正则表达式中的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: