正则表达式

正则表达式

一、正则表达式的意义

正则表达式其实就是在执行搜索时的格式,它由一些字母和数字组合而成。

二、元字符

元字符

描述

.

描述任意一个除换行符的字符

[]

匹配方括号内的任意字符

[^]

匹配除了方括号内的任意字符

*

匹配0个及以上的字符

+

匹配1个及以上的字符

?

标记?前的字符只能有1个或0个

{n,m}

匹配n到m个字符,其中n(m)可以省略,

即{n,}({,m}),代表大于n个字符(小于m个字符)

(xyz)

匹配和括号内(xyz)完全相同的字符串

|

或运算符

\

转义字符,匹配一些保留的字符(如上的元字符)

^

代表从开始行进行匹配

$

代表从末端进行匹配

2.1 点运算符    .

描述任意一个除换行符的字符

“.at” => a cat in a car.

“ca.” => a cat in a car.

2.2字符集

2.2.1 字符集   []

匹配方括号内的任意字符

“[Tt]” => The cat in the car.

2.2.2否定字符集[^]

匹配除了方括号内的任意字符

“[cat]” => a cat in a car.

2.3重复次数

2.3.1 *

匹配0个及以上的字符

“ab*c” => abbbbc ac abc adc

2.3.2 +

匹配1个及以上的字符

“ab+c” => abbbbc ac abc adc

2.3.3 ?

标记?前的字符只能有1个或0个

“ab?c” => abbbbc ac abc adc

2.4 {}

匹配n到m个字符,其中n(m)可以省略,

即{n,}({,m}),代表大于n个字符(小于m个字符)

“ab{1,3}c” => abbbc ac abc adc abbbbc

“ab{1,}c”  => abbbc ac abc adc abbbbc

“ab{,3}c”  => abbbc ac abc adc abbbbc

2.5 (...) 特征标群

特征标群是一组写在 (...) 中的子模式。(...) 中包含的内容将会被看成一个整体,和数学中小括号( )的作用相同。例如, 表达式 (ab)* 匹配连续出现 0 或更多个 ab。如果没有使用 (...) ,那么表达式 ab* 将匹配连续出现 0 或更多个 b 。再比如之前说的 {} 是用来表示前面一个字符出现指定次数。但如果在 {} 前加上特征标群 (...) 则表示整个标群内的字符重复 N 次。

“(aA)+c” => aAc aAaAc aAaac

2.6 |或运算符

判断符

“(T/t)he” => The cat in the car.

2.7 转码特殊字符

反斜线 \ 在表达式中用于转码紧跟其后的字符。用于指定 { } [ ] / \ + * . $ ^ | ? 这些特殊字符。如果想要匹配这些特殊字符则要在其前面加上反斜线 \

“car\.” => The cat in the car.

2.8锚点

2.8.1^

^ 用来检查匹配的字符串是否在所匹配字符串的开头。

“^[Tt]he” => The cat in the car.

“[Tt]he” => The cat in the car.

2.8.2$

同理于 ^ 号,$ 号用来匹配字符是否是最后一个。

“ca(t|r)” =>The cat in the car

“ca(t|r)$” => The cat in the car

三、简写字符集

简写

描述

.

除换行符外的所有字符

\w

匹配所有字母数字,相当于[a-zA-z0-9]

\W

匹配所有非字母数字,相当于[^\w]

\d

匹配所有数字,即[0-9]

\D

匹配所有非数字,即[\d]

\n

匹配一个换行符

\r

匹配一个回车符

\t

匹配一个制表符

\f

匹配一个换页符

\v

匹配一个垂直制表符

\p

匹配 CR/LF(等同于 \r\n),用来匹配 DOS 行终止符

3.1 \w

匹配所有字母数字,相当于[a-zA-z0-9]

“\w” => A1 b2 # 3

3.2 \W

匹配所有非字母数字,相当于[^\w]

“\W” => A1 b2 # 3

3.3 \d

匹配所有数字,即[0-9]

“\d” => A1 b2 # 3

3.4 \D

匹配所有非数字,即[\d]

“\D” => A1 b2 # 3

四、贪婪匹配和惰性匹配

正则表达式默认采用贪婪匹配模式,在该模式下意味着会匹配尽可能长的子串。我们可以使用 ? 将贪婪匹配模式转化为惰性匹配模式。

“<.+>”  =>  <span><b>This is a sample text</b></span>

(贪婪匹配)

“<.+?>” =>   <span><b>This is a sample text</b></span>

(懒惰匹配)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值