Java正则表达式详解

来源:互联网 发布:禅道 linux 一键安装 编辑:程序博客网 时间:2024/06/08 14:08
正则表达式可以说是用来处理字符串的一把利器,它是一个专门匹配n个字符串的字符串模板,本质是查找和替换。在实例演示之前先了解一下Pattern、Matcher这两个工具类.
Pattern:编译好的带匹配的模板(如:Pattern.compile(“[a-z]{2}”);/ / 取2个小写字母)
Matcher:匹配目标字符串后产生的结果(如:pattern.matcher(“目标字符串”);)

字符串还有一个自带的matches方法用来判断目标字符串是否匹配给定的正则表达式,格式为:targetStr.matches(regex); 返回类型为boolean.

(一)支持的基本通配符

. -可以匹配任意字符
\s -代表一个任意空白(空格、Tab)。
\S -代表一个任意的非空白。
\d -代表一个任意的数字(digital)。
\D -代表一个任意的非数字。
\w -代表一个单词字符。
-W -代表一个任意的非单词字符

(二)取值范围(用作出现次数的“副词”)

? –代表它前面的东西可以出现0~1次
* –代表它前面的东西可以出现0~N次
+ –代表它前面的东西可以出现1~N次
{n,m} –代表它前面的东西可以出现n~m次
{n,} –代表它前面的东西至少出现n次
{,m} –代表它前面的东西最多出现m次
{n} –代表它前面的东西必须出现n次

(三)方括号表达式

枚举:[ab1] –代表a或b或者1。
范围:[a-c] –代表a,b,c中的任意一个字符。
枚举与范围:[a-c1-3]–代表a,b,c,1,2,3中的任意一个字符。
表示求否:[^a-c] –代表不含a,b,c其中任意一个字符。
表示求交:[a-g&&[^b-d]]:–代表a,e,f,g中的任意一个字符。
表示必须含有其中之一:(com|org|cn)

总结:一个字符用\,多个字符用[],字符次数用{}