博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扩展正则表达式egrep
阅读量:6328 次
发布时间:2019-06-22

本文共 1273 字,大约阅读时间需要 4 分钟。

正则表达式分为:基本正则表达式和扩展正则表达式。

基本正则表达式支持的字符匹配有:

. :任意单个字符    [] :中括号范围内的任意单个字符    [^]:范围内以外的任意单个字符

次数匹配:

*:前面字符的可以任意次数    \?:前面字符可以出现0次或1次    .*:任意长度任意字符    \{m,n\}:前面那个字符最少出现m次,最多出现n次,n可以省略,表示最大次数没有限制

锚定

^:表示后面出现的字符只能出现在行首    $:表示后面出现的字符只能出现在行尾    \<,\b:后面出现的字符只能是在单词的前面\>,\b:后面出现的字符只能是在单词的后面

分组:

\(\):括号内的字符分为一组,如果和\1,\2,\3..连用表示第一组第二组第三组。。。

扩展正则表达式egrep或者grep -E

egrep或grep -E拥有基本正则表达式的功能,同时又有支持新的元字符和不同点,比如说,在次数匹配上:

+:表示前面的那个字符至少出现一次    {m,n}:前面那个字符最少出现m次,最多出现n次,n可以省略,表示最大次数没有限制,不需要使用 \ 做转义

分组:

():括号内分为一组,不需要使用 \ 转义

支持:

| :or或者,如egrep ‘C|cat’ xx.txt,表示找出xx.txt文件中有C或者cat的行,‘(C|c)at’ 这个表示找出Cat或者cat的行

用法实例:找出ifconfig命令中符合ipv4常用的ip地址:

ipv4有5类分别是A B C D E    A:1-127    B:128-191    C:192-223    DE类一般不用

命令:

ifconfig | egrep '\<(([1-9]|[1-9][1-9]|1[0-9][0-9]|2[0-2][0-3])\.(([0-9]|[1-9][1-9]|1[0-9][0-9]|2[0-2][0-3])\.){2}([1-9]|[1-9][1-9]|1[0-9][0-9]|2[0-2][0-3]))\>' --color -o    分析(这条命令用于找出符合0-223的数字段的ip):ifconfig查看网络配置的相关信息,| 将ifconfig的输出传递到后面的egrep命令,([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-2][0-3])表示ip地址的第一段如果是一位数,则第一个数是1-9(第一个数不能为0),两位数10-99,三位数100-199或者200-223,同时用()表示这里面是一组,\. 表示小数点,要转义,后面ip的第二段和第三段是一样的所以{2}表示重复两次,最后一段同理只是不能为0,--color标记匹配的颜色,方便区分,-o仅显示匹配到的字符串,最后的那组()表示吧整个匹配到的分为一组,\< (……) \>表示这里面只能是整个单词出现,注意像 . : 等不属于单词的一部分。

转载于:https://blog.51cto.com/13803030/2134663

你可能感兴趣的文章
182在屏幕中实现网格化视图效果
查看>>
本文摘录 - FlumeJava
查看>>
Scala学习(三)----数组相关操作
查看>>
Matlab基于学习------------------函数微分学
查看>>
Dundas 系列
查看>>
Windows的命令行查看,修改,删除,添加环境变量
查看>>
iOS 图文混排
查看>>
64. Minimum Path Sum
查看>>
Windows Live Writer 使用指南
查看>>
分析iOS Crash文件,使用命令符号化iOS Crash文件
查看>>
R学习笔记 第五篇:字符串操作
查看>>
在Mac OS下配置PHP开发环境
查看>>
(转)介绍下Nuget在传统Asp.net项目中的使用
查看>>
C# ArcEngine 实现点击要素高亮并弹出其属性
查看>>
初识GO语言——安装Go语言
查看>>
SDK命令行操作
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
EXTJS学习系列提高篇:第二十四篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--阅增删改篇...
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>
判断二叉树是否平衡、是否完全二叉树、是否二叉排序树
查看>>