首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

正则表达式的基础运用(二)

在上一篇文章中主要简单介绍了正则中很基础的内容,一些简单的匹配,今天则在之前的基础上加了点东西,但其实也是我们掌握正则所必须学会的基础部分。

首先我们先来看一下正则中的简写字符集:

上面表格中都是正则表达式中一些常用正则的简写形式,方便我们使用时书写,也便于记忆。

前后关联约束

1.前置约束存在和前置约束排除:(?=…) 和 (?!…)

通俗点说就是对指定格式的前面的元素进行约束,前者是匹配到的元素后面跟着指定格式,后者是匹配到的元素后面不是跟着指定格式。结合例子可能更好理解:

"ar(?=\s)" 表示匹配 ar 字符串后面跟着的是空格。

Regularexpressions are a deep language.

"ar(?!\s)" 表示匹配 ar 字符串后面跟着的不是空格。

Regular expressionsare a deep language.

上面两个正则都是对匹配到的 ar 字符串进行约束,前者是跟着的是空格,后者跟着的不是空格;前者约束存在,书写格式为 (?=…),后者约束不存在,书写格式为 (?!…)。

2.后置约束存在和后置约束排除:(?

和上面的相对应,对指定格式的后面的元素进行约束,前者是匹配到的元素前面跟着指定格式,后者是匹配到的元素前面不是跟着指定格式。同样结合例子理解:

"(?

Regular expressionsare a deep language.

"(?

Regularexpressions are a deep language.

上面两个正则同样都是对匹配到的 ar 字符串进行约束,前者的前面要是空格,后者的前面要不是空格,同样的前者约束存在,书写格式为 (?

标志

标志也叫修饰语, 它是用来修改表达式的搜索结果. 这些标志可以任意的组合使用, 它也是正则表达式的一部分,常用的标志有三种:g,i,m,分别表示全局搜索,忽略大小写,多行匹配。

1.全局搜索 g

"ar" 匹配结果如下:

Regularexpressions are a deep language.

"ar/g" 匹配结果如下:

Regularexpressionsare a deep language.

上面两者的区别在于第一个是只搜索匹配到的第一个结果,第二个是全局搜索,将所有匹配的结果全部搜索出来。

2.忽略大小写 i

"Reg" 匹配结果如下:

Regular expressions are a deep language.

"REG/i" 匹配结果如下:

Regular expressions are a deep language.

上面两者的区别在于第一个是只搜索字符完全匹配的结果,第二个是搜索忽略大小写的匹配结果。

3.多行匹配 m

"^Reg/g" 匹配结果如下:

Regular expressions are a deep language,

Regular expressions are a deep language,

Regular expressions are a deep language.

"^Reg/gm" 匹配结果如下:

Regular expressions are a deep language,

Regular expressions are a deep language,

Regular expressions are a deep language.

这样一对比两者的区别其实就已经出来了,第一个是全局搜索匹配到的结果,匹配的是第一行的开头,而第二个也是全局搜索匹配到的结果,只不过它是匹配每一行的开头。

以上就是正则表达式的一些基础运用,有了这些基础,然后在平常开发中积极去尝试写出一些稍微复杂的正则,加强练习,不然看完之后过一段时间就忘了,只有不断练习,慢慢的才会对正则有点感觉。这些正则的基础也是我在 github 上找到一个关于学习正则的项目,然后通过这个项目的学习所掌握的,下面就是这个项目的地址:

https://github.com/zeeshanu/learn-regex

常用正则表达式

励志成为一名菜鸟码农,共勉!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802G08MH000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券