正则表达式(二)

正则表达式基本字符:

1. 原义文本字符:

  就是代表本来含义的字符,abc123,写a就是匹配a,写3就是匹配3.

2.元字符:

  在正则表达式中有特殊含义的字符.如:/b,是表示匹配单词边界而不是匹配一个/和一个b

字符类:

  • 一般情况下正则表达式一个字符对应字符串一个字符,如:表达式 ab\t 的含义就是匹配”ab”和一个水平制表符

  • 但当我们想匹配一类字符(如想匹配abc)的时候就需要用到元字符 [] 来构建一个简单的类,如:[abc]把字符a,b,c归为一类,表达式可以匹配这类字符.

字符类取反:

  • 使用元字符^ 创建反向类

  • 反向类的意思就是不属于这个类的内容,如:表达式[^abc]表示不是a或者b或者c的内容.

范围类:

  • [a-z]来连接两个字符表示从 a 到 z 的任意字符

  • 这是个闭区间,也就是包含 a 和 z 本身

  • 在[]组成的类内部是可以连写的 [a-zA-Z],如果想在[]内匹配 - 则在连接范围后添加-就可以,如[A-Z-]

预定义字符:

 . : 等价[^\r\n]         除了回车符和换行符的字符
\d : 等价[0-9]           数字字符
\D : 等价[^0-9]          非数字字符
\s : 等价[\t\n\x0B\f\r]  空白符
\S : 等价[^\t\n\x0B\f\r] 非空白符
\w : 等价[a-zA-Z_0-9]    字母数字下划线
\W : 等价[a-zA-Z_0-9]    非字母数字下划线

边界

 ^ : 以xxxx开始
 $ : 以xxxx结束
\b : 单词边界
\B : 非单词边界

量词

 ?   : 出现0次或一次
 +   : 出现一次或多次
 *   : 出现0次或多次
{n}  : 出现n次
{n,m}: 出现n到m次
{n,} : 至少出现n次

贪婪模式与非贪婪模式

对字符串”12345678” 用\d{3,6}匹配则会匹配到”123456”(这就是贪婪模式),
而用\d{3,6}就匹配到”123”“456”(这就是非贪婪模式)

分组

  • 使用( ) 可以达到分组的功能,使量词作用于分组,如:对”a1b2c3d4”用([a-z]\d){3}则能匹配到,而且可以用$1获取第一个()内的匹配的内容

  • 忽略分组,不希望捕获分组,只需要在分组内加上?:就可以了,如(?:\d)

  • 使用 | 达到这样的效果

最后:如果想对正则表达式在java的运用有所了解的话可以点这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值