当前位置: 首页 > article >正文

扩展正则表达式

文章目录

    • 1、字符匹配元字符
    • 2、次数匹配
    • 3、位置锚定
    • 4、分组

扩展正则表达式很多和基础正则表达式一样,只不过在正则表达的基础之上去掉了”\”,大部分去掉了,也有特殊的,如位置锚定中的行首行尾。

1、字符匹配元字符

. 任意单个字符
[wang] 指定范围的字符
[^wang] 不在指定范围的字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号

2、次数匹配

*   匹配前面字符任意次
? 0或1次
+ 1次或多次
{n} 匹配n次
{m,n} 至少m,至多n次

3、位置锚定

^ 行首
$ 行尾
\<, \b 语首
\>, \b 语尾

4、分组

() 分组
后向引用:\1, \2, ...
| 或者
a|b #a或b
C|cat #C或cat
(C|c)at #Cat或cat

例1:

# 在基本正则表达式中我们使用过以下命令进行过滤空行和注释行(以井号开头)
[root@VM-20-17-centos conf]# grep -v -e "^#\|^$" -e "\s*#" nginx.conf

# 我们同样可以用扩展正则表达式实现,这里-E是支持扩展正则,"^#|^$"直接去掉了"\"
[root@VM-20-17-centos conf]# grep -Ev -e "^#|^$" -e "\s*#" nginx.conf

# 也可以这样写
[root@VM-20-17-centos conf]# grep -Ev -e "^(#|$)" -e "\s*#" nginx.conf
或者
[root@VM-20-17-centos conf]# egrep -v -e "^(#|$)" -e "\s*#" nginx.conf

例2:取IP地址

# 使用基本正则表达式写法
[root@VM-20-17-centos shell]# ifconfig eth0 |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' |head -1
10.2.20.17

# 使用扩展正则表达式,扩展正则表达式用-E参数,扩展正则表达式不用"\",去掉除转义"."以外的"\",如下:
[root@VM-20-17-centos shell]# ifconfig eth0 |grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' |head -1
10.2.20.17

# 继续优化,使用分组,将[0-9]{1,3}\.看成一组,出现3次
[root@VM-20-17-centos shell]# ifconfig eth0 |grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' |head -1
10.2.20.17

http://www.kler.cn/a/466206.html

相关文章:

  • Level DB --- BloomFilterPolicy
  • java基础学习(接口和抽象类的区别)
  • 【2025最新计算机毕业设计】基于Spring Boot+Vue影院购票系统(高质量源码,提供文档,免费部署到本地)
  • ARM 汇编基础总结
  • Spring系列一:spring的安装与使用
  • 第2章:SQL基础
  • Python提取目标Json键值:包含子嵌套列表和字典
  • DAY178内网渗透之内网对抗:横向移动篇入口差异切换上线IPC管道ATSC任务Impacket套件UI插件
  • 机器学习和深度学习
  • IDEA自带插件禁用,减少内存占用
  • 快速理解MIMO技术
  • 讲解一下$.ajax
  • 如何向您的网站添加 SSL 证书?
  • QT------------------串口编程
  • 计算机网络 (21)网络层的几个重要概念
  • 【机器学习:一、机器学习简介】
  • 首都旅游逐绿焕新!苏州金龙新V系客车助推北京旅游客运加速转型
  • Wonder Dynamics技术浅析(七):细节优化
  • 《庐山派K230 从入熟悉到...》获取图像,获取一张照片
  • 使用Python实现患者数据分析:探索健康管理的新路径
  • Fabric环境部署
  • 二、CSS基础
  • 沙箱模拟支付宝支付3--支付的实现
  • 大数据系列之:深入理解学习使用腾讯COS和COS Ranger权限体系解决方案,从hdfs同步数据到cos
  • 第 22 章 处理 XML
  • Linux网络 | 理解Web路径 以及 实现一个简单的helloworld网页