正则表达式

原贴: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());//打印出匹配自字符所在位置
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值