解析正则表达式的使用方法

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 很多初学者对正则表达式望而却步,那家伙,听到正则来了掉头就跑啊!跑什么呢?跑了就能解决问题吗?当然不能,最后还是要直面它的。正如伟大领袖毛主席说的那句话一样,其实,正则表达式不过就是一个纸老虎罢了。

很多初学者对正则表达式望而却步,那家伙,听到正则来了掉头就跑啊!跑什么呢?跑了就能解决问题吗?当然不能,最后还是要直面它的。

正如伟大领袖毛主席说的那句话一样,其实,正则表达式不过就是一个纸老虎罢了。不信啊,不信请听我郑康来给你们讲解正则表达式:

ps:我可没有打错字哦,没错,我就是叫郑康哦!

好了,言归正传,Linux中的正则表达式其实可以分为两种:一种叫做基础正则表达式,还有一种就是扩展表达式。这里我们只谈基础就足够了,至少应对工作足够了。


① *或a*

*代表全部,但是需要注意的是,这里的*与通配符里的*可不是一回事哦!再次强调一下,通配符是完全匹配,而正则表达式是包含匹配。所谓包含匹配,就是只要包含就显示出来。

如图,test文件中已经写入了很多a和b,这里为了用作演示:

wKioL1fjaZfTZ6o1AADc-tcFHMI660.png-wh_50

看到了吗?坏了,为什么不是把只包含a的都取出来,怎么把b也取出来了呢?那么这时候你们就要先理解在正则表达式中的*到底代表了什么意思?难道不是和通配符中*的意义差不多吗?


哎,还真就差了很多。在正则表达式中的*前面的东西,如上面的a*代表的含义是匹配包含0到无穷个a,

而不是单纯的指仅包含a。

那么这时候要想只取出a应该怎么办呢?有办法,在a的前面再加一个a,这里需要注意,*前面的那个字母是谁无所谓,重点是该字母前的字母。

例如:匹配只包含a的情况

grep "aa*" test

wKiom1fjaw3yTFIRAADV58VJKM8683.png-wh_50



② .代表任意一个字符,正则表达式里的.与通配符里的?几乎一模一样

如图:

wKioL1fjeb7SrTFFAADMyImfY_A153.png-wh_50













③ ^代表匹配行首

例如:文件test中有said和soid这两个家伙,现在用^把这两个家伙找出来

如图:

wKiom1fjemvT7oqKAADJa4zwRqg989.png-wh_50


④ $用于匹配行尾

这个更简单了,直接上代码吧

wKiom1fjerjCP-DAAADJ5OiBn_4460.png-wh_50


⑤ []用于匹配括号中指定的任意一个字符,这个和通配符中的[]又有些类似。

wKiom1fje1qATF7xAADVx6iGuZ0348.png-wh_50


⑥ [^]表示匹配除括号中的字符以外的任意一个字符。啥意思?就是说^放在外面就是匹配行首,放在[]里面就表示取反。

例如,我们来取不包含a的字符

wKiom1fjfDTgdUSmAADWx48RsIo094.png-wh_50


哎,这里为什么包含了a呢?其实,[^]真正的含义应该这么理解:过滤只含有a的字符

[^0-9]表示过滤全是数字的字符

[^a-z]表示过滤全是小写字母的字符

[^A-Z]表示过滤全部是大写字母的字符

注意:^[^a-z]表示匹配首字母不是小写字母的字符


⑦ \转义符,用于取消特殊字符的含义。

举个例子,正则表达式中的.就是代表任意字符的意思,但是\.的意思就是单纯的一个“.”


⑧ \{n\}表示前面的字符恰好出现n次

举例:来吧,上图吧

wKioL1fjiR3QCAfkAADWuBg__jw037.png-wh_50


⑨ \{n,\}表示前面的字符出现不少于n次

举例:还是搜索那个字符串,废话不多说,一言不合就上图

wKioL1fjiuvje9KiAADctfaRsLo202.png-wh_50


⑩ \{n,m\}表示匹配不少于n,不多于m的字符

如图:

wKiom1fjjFryjZzVAADddrWAPsc583.png-wh_50


亲情通告:如果哪位童鞋遇到看不明白的地方,请加QQ群:579292790


相关文章
|
Java
正则表达式基本使用
正则表达式基本使用
603 0
正则表达式基本使用
|
4月前
|
数据采集 Java 数据处理
正则表达式替换技巧与实用案例分享
正则表达式替换技巧与实用案例分享
|
6月前
|
Python
正则表达式高级用法
正则表达式是强大的文本匹配工具,常用于搜索、匹配和验证字符串。高级用法包括:捕获组(区分需要提取的内容)、非捕获组(减少开销)、零宽断言(定位匹配位置)、反向引用(匹配相同内容)、嵌入代码(实现复杂逻辑)、贪婪与非贪婪匹配(控制匹配范围)和递归匹配(处理嵌套结构)。了解这些高级技巧能提升字符串操作效率。示例展示了验证Email、电话号码、提取URL和清理多余空格的正则表达式应用。
正则表达式的用法
正则表达式的用法
70 1
正则中re高级用法findall中的一个小坑
正则中re高级用法findall中的一个小坑
34.从入门到精通:Python3 正则表达式检索和替换 repl 参数是一个函数 正则表达式对象 正则表达式修饰符 - 可选标志 正则表达式模式* 正则表达式实例
34.从入门到精通:Python3 正则表达式检索和替换 repl 参数是一个函数 正则表达式对象 正则表达式修饰符 - 可选标志 正则表达式模式* 正则表达式实例
|
数据采集 移动开发 Python
正则表达式——语法、re模块的使用(附示例)
正则表达式——语法、re模块的使用(附示例)
140 0
正则表达式——语法、re模块的使用(附示例)
|
人工智能 编译器 Python
Python re 正则表达式 数据匹配提取 基本使用
模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。 多数字母和数字前加一个反斜杠时会拥有不同的含义。 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。 反斜杠本身需要使用反斜杠转义。 正则表达式通常都包含反斜杠"\\"以及小括号"\(\)",模式元素(如 r'\t',等价于 '\\t')匹配相应的特殊字符。
266 0
Python re 正则表达式 数据匹配提取 基本使用
正则表达式的通用语法以及用法作用
正则表达式的通用语法以及用法作用
141 0
正则表达式的通用语法以及用法作用
|
自然语言处理 关系型数据库 MySQL
正则表达式使用方法 | 学习笔记
快速学习正则表达式使用方法
下一篇
无影云桌面