正则表达式

1、定位符

语法说明
^匹配字符开始的位置
$匹配字符串结尾的位置

2、选择符
选择符为"|",可以理解为“或”的意思。

示例说明
hello|world匹配字符串hello或者world

3、字符范围
正则表达式用[]来限定字符范围。

示例说明
[abc]查找含字符a、b、c的字符串
[^abc]匹配除了a、b、c以外的字符
[a-zA-Z0-9]查找a~z、A~Z、0~9

上述的连字符-表示的范围遵循字符编码的顺序。
4、点字符与限定符

语法说明示例
.匹配一个任意字符f.o,匹配foo,fto等
?匹配前面的字符0次或者1次hello?,匹配hell、hello
+匹配前面的字符1次或多次hello+,匹配hello、hellooooooo
*匹配前面的字符0次或者多次hello*,匹配hell、hello(任意个o)
{n}匹配前面的字符n次hel{2}o,只能匹配hello
{n,}匹配前面的字符最少n次hel{2,}o,匹配hello,helll(任意个l)o
{n,m}匹配前面的字符最少n次,最多m次类似上面的语法,不再举例

5、小括号
小括号有两个作用:改变作用范围、分组

示例说明
改变作用范围:(thir|four)th匹配thirth、fourth
分组:(app){2}匹配appapp

6、反斜杠
反斜杠的作用大致有:转义、表示一些不可以打印的字符、指定预定义的字符集等。

示例说明
[\^\$\*\\]表示匹配含有^$*\四种符号的字符串
\x27用于linux匹配单引号。因为单引号是定界符,要匹配单引号需要用\x27进行匹配(避免被shell当成参数分隔符)
(a)(b)(c)\3“\数字”表示对括号内字符串的引用,数字表示第几个括号。例子为匹配abcc
\d任意十进制数字,相当于[0-9]
\D任意非十进制数字
\w任意单词字符,相当于[a-zA-Z0-9]
\W任意非单词字符
\s任意空白字符,如空格,水平制表符
\S任意非空白字符
\b单词分界符
\B非单词分界符
\xhh表示hh(十六进制2位数字)对应的ASCII字符,如\x61表示a

7、贪婪匹配与惰性匹配
贪婪匹配是指尽可能多的匹配字符串,如果需要改成惰性匹配,需要在限定词后加"?"。
举例: 如果想要匹配a****b这样的字符串,那么我如果输入了a00jshbksb字符串,那么匹配到的字符串是a00jshb还是a00jshbksb呢?
在默认情况下是贪婪匹配,则通过a.*b进行匹配则会匹配出a00jshbksb;如果我需要a00jshb这样的匹配结果,则应该使用"?"进行控制,即使用a.*?b进行匹配。如图:

转载于:https://my.oschina.net/u/4108765/blog/3064074

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值