正则表达式

来源:互联网 发布:钢琴软件电脑版 编辑:程序博客网 时间:2024/06/07 08:47

原贴:http://blog.csdn.net/hua631150873/article/details/11786351

正则表达式中常用的正则符号:

\\ 反斜线
\t 制表符
\n 回车
\f 换页
字符类:
[abc] a,b,c中任意一个
[^abc] 除了a,b,c之外的任意一个
[a-zA-Z] a到z,A到Z
[a-zA-Z_0-9] 字母和数字
[a-d[m-x]] a到d,m到x的并集
[a-z&&[^bc]] a到z,排除b和c
[a-z&&[^m-p]] a到z,排除m到p
预定义字符类:
. 任何字符(\.点)
\d 数字[0-9]
\D 非数字
\s 空白字符
\S 非空白字符
\w 单词字符[a-zA-Z_0-9]
\W 非单词字符
边界匹配器:
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
数量表示:
X? 一次或者一次也没有
X* 零次或者多次
X+ 一次或者多次
X{n} n次
X{n,} 至少n次
X{n,m} 至少n次,但不超过m次
具体应用:
匹配(String.matches())
"13530432393".matches("1[358]\\d{9}");//匹配手机号13-,15-,18-开头,共11位数字
"06328982435".matches("0\\d{2}-?\\d{8}|0\\d{3}-?\\d{7}");//匹配座机号,0开头,三位或者四位区号,有或者没有-分割,共11位,注意|左右不可有空格
"1527965233" + "1527965233".matches("[1-9]\\d{4,14}");//QQ号匹配,非0开头,共5到15位
"hsl152@126.com.cn " + "hsl152@126.com".matches("[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z]+){1,2}");//邮箱匹配,一个或者多个字母数字开头,@,一个或者多个字母或者数字表示邮箱服务器,域名类型
"hsl152@126.com".matches("\\w+@\\w+(\\.\\w+)+");//简单表示邮箱地址
分割(String.split())
"aaabbccdefffddffsss".split("(.)\\1+");//(.)表示任意字符,\\1表示(.),整体表示已重复的字符作为分割,返回字符数组
替换(String.replaceAll(,))
"2aabbccd123ffdd2fss12".replaceAll("\\d+", "@");//将一个或者多个数字替换为@
"2aabbccd123ffdd2fss12".replaceAll("(.)\\1+", "@@");//将重复的字符替换为@@
获取(获取字符串中的匹配部分)
String reg="\\w+@\\w(\\.\\w)+";
Pattern p = Pattern.compile(reg);正则类
Matcher m = p.matcher(str);//str:待匹配字符,m为匹配类
while(m.find()){
System.out.println(m.group());//若找到匹配自字符,输出
System.out.println("-->位置为: " + m.start() + "---" + m.end());//打印出匹配自字符所在位置
}
0 0
原创粉丝点击