正则表达式

字符类别

字符含义例子
.匹配任意单个字符,在字符集中,点( . )失去其特殊含义,并匹配一个字面点( . )
\d等价于[0-9]
\D等价于[^0-9]
\w等价于[A-Za-z0-9_]
\W等价于 [^A-Za-z0-9_]
\s匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格
\S匹配一个非空白符
\t匹配一个水平制表符(tab)
\r匹配一个回车符(carriage return)
\n匹配一个换行符(linefeed)
\v匹配一个垂直制表符(vertical tab)
\f匹配一个换页符(form-feed)
[\b]匹配一个退格符(backspace)(不要与 \b 混淆)
\0匹配一个 NUL 字符。不要在此后面跟小数点。
\cXX 是 A - Z 的一个字母。匹配字符串中的一个控制字符/\cM/ 匹配字符串中的 control-M
\xhh匹配编码为 hh (两个十六进制数字)的字符
\uhhhh匹配 Unicode 值为 hhhh (四个十六进制数字)的字符。

字符集[]

模型含义例子
[abc]匹配集合中任意一个字符
[\^abc]对[xyz]进行取反

注意:
1.abc可以写成a-b,所以26个字母可以简单写成a-z.
2.123可以写成1-3,同理还有1-9.

边界处理

模型含义例子
^从开始匹配^A 不匹配 “an A” 中的 “A”,但匹配 “An A” 中的 “A”
$从结尾匹配t$ 不匹配 “eater” 中的 “t”,但匹配 “eat” 中的 “t”
\b
\B

注意:
1.^$组合起来使用可以匹配单个字母或单词

数量词

模型含义例子
x*匹配前面的字母或者分组0次或多次bo* 匹配 “A ghost booooed” 中的 “boooo”;“A bird warbled” 中的 “b”
x+匹配前面的字母或者分组1次或多次bo+ 匹配"A ghost booooed" 中的 “boooo”;但不能匹配 “A bird warbled” 中的 “b”
x?匹配前面的字母或者分组0次或1次
x*? x+?非贪婪匹配
x{n,m}匹配前面的字母或者分组n到m次
x|y匹配 x 或 y

分组()

捕获

分组既是将括号里的内容看成一个整体.每个整体都可以用\1,\2等来引用.
例如:(a(bc))中,有3个分组,\0表示(a(bc)),\1也表示(a(bc)),\2表示(bc),排列顺序是从左到右第一个括号

模型含义例子
(abc)+将abc看成一个整体,1次或多次(abc)+匹配"abcab"
(ab)\1将ab看成一个整体,\1指重复一次ab这个整体“(ab)\1"代表了"abab”
(a(bc))\2将bc看成一个整体,\1指重复一次bc“(a(bc))\2"代表了"abcbc”

非捕获

(?)分组里带有?就表示分组是非捕获,既匹配的时候考虑括号里的内容,但是返回的时候不返回扩考里的内容.

模型含义例子
x(?=y)只匹配后跟y的x\d(?=a)只匹配了"1a2b3c"中"a"前面的数字"1"
x(?!y)只匹配后面不跟y的x\d(?!a)只匹配了"1a2b3c"中"b"前面的数字"2",“c"前面的"3”
(?<=y)x只匹配前跟y的x.(?<=1)只匹配了"1a2b3c"中"1"后面的"a"
(?<!y)x只匹配前不跟y的x.(?<!1)只匹配了"1a2b3c"中"2"后面的"b",“3"后面的"c”

参考文献:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references
https://blog.csdn.net/okyoung188/article/details/53407021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值