正则表达式

正则表达式(regex)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

通俗的讲就是把一串字符按你的正则规则筛选出你想要的内容。

正则规则就是由元字符与量词组合而成的。


3c58e5bcd4a499e0f651fca2b9385032.jpeg

例:

文本:123abc
正则规则:\d
结果:
1
2
3
(匹配到3条结果)

例:

文本:123abc
正则规则:[1-9a-zA-Z]
结果:
1
2
3
a
b
c
(匹配到6条结果)

元字符只能匹配一个字符,必须加上量词才能大量匹配

d9a4b250d18544fd128fa5eb6914abf1.png

学习a完量词我们继续上面的例子

文本:123abc
正则规则:\d+
结果:123(匹配到1条结果)

默认:贪婪匹配

量词后面加?变为非贪婪匹配

例:

文本:123abc
正则规则:[1-9a-zA-Z]+
结果:123abc(匹配到1条结果)

我们加个问号试试会发生什么

文本:123abc
正则规则:[1-9a-zA-Z]+?
结果:
1
2
3
a
b
c
(匹配到6条结果)

为什么会这样呢?

正则规则匹配系统会默认贪婪匹配,就是有符合规则的字符有多少匹配多少,但是当量词后面加了问号就变为非贪婪匹配(也叫惰性匹配),+是匹配重复一次到多次,加了问号就会只匹配一次了

小编推荐一个小编比较喜欢用的正则表达式在线测试工具:tool.chinaz.com/regex/

为了帮助大家h更好的理解正则表达式小编x再举几个例子

例:

文本:绿茶白茶黄茶青茶红茶黑茶
正则表达式:.茶
结果:
绿茶
白茶
黄茶
青茶
红茶
黑茶
(匹配到6条结果)

例:

绿茶白茶黄茶青茶红茶黑茶
正则表达式:.+茶
结果:绿茶白茶黄茶青茶红茶黑茶
(匹配到1条结果)

例:

<a>…</a>ab<a>cd</a>
正则表达式:<.*>
结果:<a>…</a>ab<a>cd</a>(匹配到1条结果)

例:

文本:a1b2c3
正则表达式:([abc][123])+
结果:a1b2c3(匹配到一条结果)

例:

<a>…</a>ab
正则表达式:<.*>
结果:<a>…<a>

例:

<a>…</a>ab<a>cd</a>
正则表达式:<.*?>
结果:
<a>
</a>
<a>
</a>
(匹配到4条结果)

例:

<a>…</a>ab<a>cd</a>
正则表达式:<..+?>
结果:
<a>…</a>
<a>cd</a>
(匹配到2条结果)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值