正则表达式学习

https://c.runoob.com/front-end/854/
https://regex101.com/
限定符

/used?/ 问号代表前面哪个字符d 出现1次或0次数

/ab*c/ 星号代表前面的字符b 可以出现0次或多次

/ab+c/ 加号代表前面的字符b 可以出现1次或多次

{}
/ab{2,6}c/ 花扩号代表前面的字符b 可以出现2到6次
/ab{2,}c/ 代表前面的字符b 可以出现2以上
{n} - 匹配 n次。
{n,} - 匹配 n次以上。
{m,n} - 最少 m 次,最多 n 次匹配。

()
/(ab)+c/ 加上扩号的表示加号前面ab 可以出现1次或多次

或运算符|
a_(cat|dog)表示匹配a_cat或a_dog

[]方扩号里的内容代表要求匹配的字符只能取自于它们
[abc] - 匹配 a、b 或 c 中的一个字母。
[a-z] - 匹配 a 到 z 中的一个字母。
[^abc] - 匹配除了 a、b 或 c 中的其他字母。

(?:expr) - 忽略捕获的子模式。
(?=expr) - 正向预查模式 expr。
(?!expr) - 负向预查模式 expr。

元字符
\d 匹配一个数字字符。等价于 [0-9]。
\w匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’。
\s 匹配任何空白字符,包括空格、制表符、换页符。等价于 [ \f\n\r\t\v]。
. 句点匹配除换行符以外的所有字符。
^ - 字符串开头。
^a 表示只匹配以a开头的字符
$ - 字符串结尾。
a$ 表示只匹配以a结尾的字符
方扩号里的^表示什么除外
[^a-z]可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符。
贪婪匹配到懒惰匹配

  • 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。

有必要说一下,正常情况下,点号".“能匹配除了换行符外的任意字符,但是在html匹配中有很多换行符,我们想让点号能匹配到换行符,我们需要使用”(?s:.)"的形式,(?s:.*?)就表示这后面的点号可以匹配换行符了。其中的.*后面接问号?就表示这是正则表达式的勉强型匹配模式。想要详细了解勉强型匹配模式的可以看这篇文章《Go语言正则表达式》。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值