[转帖]egrep 正则表达式

egrep,正则表达式 · 浏览次数 : 0

小编点评

**元字符匹配规则** * **\d:** 数字 * **\w:** 非数字字符 * **\s:** 空格符 * **\t:** 制表符 * **\r:** 回车符 * **\n:** 换行符 * **$:** 行尾符 * **^:** 行首符 * **{}:** 字段 * **[]:** 任意字符集合 * **\1:** 上一个捕获的匹配结果 * **\2:** 下一个捕获的匹配结果 **示例使用** ``` $ grep -i '\\<([a-z]+) +\\1\\>' file result: ``` **总结** 元字符允许您在正则表达式中匹配各种字符,包括数字、字母、空格、制表符等。它们可以用于匹配任何包含这些字符的文本。

正文

https://www.cnblogs.com/ordili/p/9395735.html

 

一.功能

用正则表达式在文件或输入中搜索匹配的字符串,并打印出匹配的行。egrep匹配之前,会删除每行结尾的换行符。

二.语法

grep [OPTION]... PATTERN [FILE]...

OPTION 是选项,如  -i  匹配时忽略大小写

PATTERN 是正则表达式,需要用单引号扩起来

FILE 是文件,可以同时搜索多个文件

三.元字符

3.1 行首与行尾

^ 匹配行首

$ 匹配行尾

3.2 字符组[]

[]字符组,用于匹配字符组内任意字符,在字符组内部与外部,关于元字符的规定是不同的。

3.2.1 字符组内元字符

l 连字符“-”,在子字符组内连字符表示范围

l 脱字符“^”,在子字符组内脱字符表示否定

3.2.2 字符组注意事项

l 连字符“-”,位于字符组内第一个字符时,只是普通字符,不具备特殊意义

l 在字符组内字符 ? .  \ 都是普通字符

3.2.3 字符组例子

[.\?] 匹配.或?或\,这里的元字符.?当做普通字符处理,这里的\没有转译的功能。

[-12] 匹配-或1或2,这里的连字符当做普通字符处理

[abc] 匹配a或b或c

[0-9] 匹配任意一个数字

[a-z] 配置任意一个小写字母

[0-9a-zA-Z] 匹配任意数字或字母

[^1-5] 匹配1-5之外的任意字符

3.3 多选结构 |

| 表示”或”的意思,用于表示任意子表达式。多选结构用括号来界定范围

3.3.1 多选结构例子

grey|gray  或gr(a|e)y 或 gr[ae]y 都匹配 gray 或 grey

3.3.2 多选结构注意事项

l 多选结构用括号来界定范围

l 多选结构的每个子表达式自身都可能是完整的正则表达式,都可以匹配任意长度的文本

3.3.3 多选结构与字符组的区别:

字符组可以算是一门独立的微型语言,它对元字符有其自身的规定

多选结构则是正则表达式语言主体的一部分。

3.4 单词分界符

\< 用于匹配单词的首

\> 用于匹配单词的尾

如:

\<Cat\> 匹配单词Cat 不匹配包含Cat的其它单词,如Cata 、cCat

元字符序列:

3.5 可选项元素及量词 ?

元字符?用于表示可选项,表示有或者没有;元字符?一定要放在某个字符的后面,用于表示该字符有或没有,并且用括号来界定元字符?的作用对象

如:

July? 匹配Jul 或 July ;都表示七月

A(July)? 匹配A  或 July; 这里用括号来界定了元字符?的作用对象。

 

July? (fourth|4(th)?) 匹配 July fourth 或 July 4 或 July 4th 或 Jul fourth 或 Jul 4 或 Jul 4th

 

量词

名称

含义

问号

匹配前面的字符0-1次

+

加号

匹配前面的字符1-N次,尽可能多匹配

*

星号

匹配前面的字符0-N次,尽可能多匹配

{min,max}

 

匹配min到max次,

3.6 括号及反向引用

括号的作用:

3.7.1. 界定|的范围

3.7.2. 的把若干字符组合成一个单元,受量词的作用;如 ?+*{m,n}

3.7.3. 反向引用,

括号能够“记忆”其中子表达式匹配到的文本,可用\num来获取这些匹配到的文本;num代表数字,从1开始,num的编号按照开括号出现的先后排序

如果某个括号只是分组而不捕获,可以使用语法 (?:

如;

([a-z])([0-9])\1\2 \1代表[a-z]匹配的内容 \2代表[0-9]匹配的内容

egrep -i ‘\<([a-z]+) +\1\>’  file 匹配file中任意重复2次的单词

3.7 简单记法:

\t 制表符

\n 换行符

\r 回车符

\s 任何“空白”字符(空格符,制表符,进纸符)

\S 除\s之外的符合

\w [a-zA-Z0-9]

\W [^a-zA-Z0-9]

\d [0-9]

\D [^0-9]

3.8 总结

元字符

名称

匹配对象

.

匹配单个任意字符

[]

字符组

匹配任意列出的字符

[^]

排除型字符组

匹配任意没有列出的字符

^

脱字符

匹配行首

$

美元符

匹配行尾

\<

反斜线-小于

匹配词首

\>

反斜线-大于

匹配词尾

|

竖线

匹配分隔两旁的任意一个表达式

()

括号

界定|的作用范围

与[转帖]egrep 正则表达式相似的内容:

[转帖]egrep 正则表达式

https://www.cnblogs.com/ordili/p/9395735.html 一.功能 用正则表达式在文件或输入中搜索匹配的字符串,并打印出匹配的行。egrep匹配之前,会删除每行结尾的换行符。 二.语法 grep [OPTION]... PATTERN [FILE]... OPTIO

[转帖]egrep及扩展的正则表达式

egrep: egrep = grep -E 语法:egrep [选项] PATTERN [FILE...] 扩展正则表达式的元字符: 字符匹配: .:匹配任意单个字符; [ ]:匹配指定范围内的任意单个字符; [^]:匹配指定范围外的任意单个字符; 次数匹配: *:匹配前面的字符任意次(*自身仅表

[转帖]Linux-文本处理三剑客grep详解

https://developer.aliyun.com/article/885611?spm=a2c6h.24874632.expert-profile.311.7c46cfe9h5DxWK 简介: grep家族 grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达的行 egrep:扩

[转帖]Linux grep、egrep使用命令详解

https://segmentfault.com/a/1190000040654123?utm_source=sf-similar-article grep egrep区别 grep 默认不支持扩展 但可以通过-E 选择来支持扩展正则egrep 支持扩展正则 关于正则与扩展正则的区别可以看我另一篇s

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地