Java中使用也比较简单:
1. 编译正则表达式的字面值得到对应的模式Pattern对象;
2. 创建匹配给定输入与此模式的匹配器Matcher;
3. 通过匹配器对象执行操作,匹配器对象的方法很丰富,方法之间组合使用更加强大。
一些老是忘基础
[...] 位于括号之内的任意字符
[^...] 不在括号之中的任意字符
. 除了换行符之外的任意字符,等价于[^/n]
/w 任何单字字符, 等价于[a-zA-Z0-9]
/W 任何非单字字符,等价于[^a-zA-Z0-9]
/s 任何空白符,等价于[/ t / n / r / f / v]
/S 任何非空白符,等价于[^/ t / n / r / f / v]
/d 任何数字,等价于[0-9]
/D 除了数字之外的任何字符,等价于[^0-9]
[/b] 一个退格直接量(特例)
{n, m} 匹配前一项至少n次,但是不能超过m次
{n, } 匹配前一项n次,或者多次
{n} 匹配前一项恰好n次
? 匹配前一项0次或1次,也就是说前一项是可选的. 等价于 {0, 1}
+ 匹配前一项1次或多次,等价于{1,}
* 匹配前一项0次或多次.等价于{0,}
| 选择.匹配的要么是该符号左边的子表达式,要么它右边的子表达式
(...) 分组.将几个项目分为一个单元.这个单元可由 *、+、?和|等符号使用,而且还可以记住和这个组匹配的字符以供此后引用使用
/n 和第n个分组所匹配的字符相匹配.分组是括号中的子表达式(可能是嵌套的).分组号是从左到右计数的左括号数
^ 匹配的是字符的开头,在多行检索中,匹配的是一行的开头
$ 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾
/b 匹配的是一个词语的边界.简而言之就是位于字符/w 和 /w之间的位置(注意:[/b]匹配的是退格符)
/B 匹配的是非词语的边界的字符
题外话
邮箱验证,以前验证邮箱,网上搜个正则装在自己程序里面就用,其实这是不对的,不同的公司对邮箱的验证格式是不一样的,比方说163和qq邮箱注册,他们要求的格式都不一样,所以搜一个正则表达式就去套所有的邮箱格式也是不对的,符合自己的需求的正则才是正确的。
新闻热点
疑难解答