正则表达式

工具

http://regex101.com
页面解读

限定符

匹配对象是一个字符

符号解释
?限定符,前面的字符要出现0次或者[1]次,/used?代表d出现0次或者1次,也就是可有可无
*前面的字符要出现0或者多次
+匹配出现1次以上的字符
{}指定前面字符出现的次数或者范围

{}匹配例子:ab{6}c:出现6次b,ab{2,6}:出现2次到6次,如果想出现两次以上:ab{2,}

例子:

ac
abc
abbbbbc
adc
addddc

如果想匹配多个字符的重复,比如想匹配ababababc,ab重复,可以将ab括起来,再加限定符这里可以用(ab)+

或运算符

示例:

a cat
a dog
a bird

a (cat|dog):a后面是空格,后面括号代表要么是dog要么是cat、括号不可少,否则就变成了a cat|dog也就是要么是a cat 要么是dog。
字符类:[abc]+,方括号里的内容代表内容只能取自他们

abc 
tiger
aabbcc
dog

可以在[]里指定范围:[a-zA-z]代表所有英文字符
再括号的前面加一个^号代表括号内之外的字符[^1-9]代表数字字符之外的字符

元字符

空格…
正则表达式中的大多数元字符都是以\开头

写法解释
\d数字字符=[0-9]
\D非数字字符=[^0-9]
\w单词字符=[a-zA-z0-9]
\W非单词字符=[^a-zA-z0-9]
\s空白符,包含tab与换行符
\S非空白字符
.任意字符,不包含换行符
^匹配行首:^a只会匹配行首的a
$匹配行位:a$只会匹配行尾的a

贪婪与懒惰匹配

*+{}默认匹配尽可能多的字符

<span><b>This is a sample text</b></span>

想要匹配
<.+>:结果是全部匹配了,因为.会匹配尽可能多的字符
解法:
<.+?>:将贪婪匹配切换为懒惰匹配

实例:

16进制颜色值匹配

#00
#ffffff
#ffaaff
#00hh00
#aabbc
#000000
#ffffffff

可以用\b代表字符边界,可以作为边界,你也就不要向下匹配了,就像这里的最后一个一样
实例代码:#[a-fA-f0-9]{6}\b

ip地址的匹配

123
255.255.255.0
192.168.0.1
0.0.0.0
256.1.1.1
This is a string
123.123.0

四段数字构成,数字段之间用.隔开,注意这里.是指代所有字符,要用原本的意思进行转义\.

高级部分

捕获、断言、平衡组,递归

参考资料

正则表达式30分钟入门教程 作者:deerchao
Regex tutorial—A quick cheatsheet by examples (英文) 作者:Jonny FoxRegular Expressions Tutorial (英文)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值