加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式、grep使用

发布时间:2020-12-14 02:06:55 所属栏目:百科 来源:网络整理
导读:一、正则表达式 正则表达式模式:贪婪模式、非贪婪模式 正则表达式包括:基本正则表达式、扩展正则表达式 1、基本正则表达式 ^ 锚定行首的内容,如:^pattern $ 锚定行尾的内容,如:pattern$ ^$ 空白行 . 匹配任意单个字符 * 匹配其左边字符任意次 .* 匹配

一、正则表达式

正则表达式模式:贪婪模式、非贪婪模式

正则表达式包括:基本正则表达式、扩展正则表达式


1、基本正则表达式

^ 锚定行首的内容,如:^pattern
$ 锚定行尾的内容,如:pattern$
^$ 空白行
. 匹配任意单个字符
* 匹配其左边字符任意次
.* 匹配任意长度的任意字符
[ ] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
? 匹配其左边字符0次或1次
{m,n} 匹配其左边字符至少m次,至多n次
{m,} 匹配其左边字符至少m次
{m} 匹配其左边字符精确m次
&;
锚定词首,如:&;pattern
&; 锚定词尾,如:pattern&;
&;&; 锚定单词(并非真正意义上的英文单词),&;pattern&;
b

字符边界符,与&;、&;功能类似,如:bpatternb (锚定单词

(pattern) 分组,如:(abc).*1 说明:此处1表达第1个分组


[:lower:]
小写字母
[:upper:] 大字字母
[:digit:] 数字
[:alpha:] 字母
[:alnum:] 字母和数字
[:space:] 空格
[:punct:] 标符号(字母、数字、控制、空白符以外的字母)


2、扩展正则表达式

+ 重复一个或一个以上的前一个字符
? 零个或一个前一个字符
| 或,多选一
() 分组
()+ 重复一个或一个以上的前一个分组
{m,n} 匹配其左边字符至少m次,至多n次
&;&; 锚定单词


同时包括所有基本正则表达式,除&;、&;外,扩展正则表达式中不需要使用反斜线。


更多正则表达式使用可查看:man 7 regex

也可参考:http://www.cnblogs.com/lcf/articles/807523.html


二、grep 使用

grep 支持基本正则表达式

egrep 支持扩展正则表达式(相当于:grep -E)

fgrep 不支持模式匹配,但速度很快


命令:grep

作用:打印出与模式匹配的行

参数:

--color=auto

匹配到的信息使用颜色标记,auto选项可省略

修改默认配色方案(前景色后景色):export GREP_COLOR='01;36'

-v 反射选取
-o 只显示被模式匹配到的字符串
-i 不区分字符大小写
-w 匹配单词
-r 递归查找
-A # 显示所匹配到行,及其后面的#行
-B # 显示所匹配到行,及其前面的#行
-C # 显示所匹配到行,及其前后的#行
-E 使用扩展正则表达式


三、举例:

匹配IP地址:

ifconfig |egrep --color "([1-9]|[1-9][0-9]|1[0-9]{1}|2[0-4][0-9]|25[0-5]).(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){2}([1-9]|[1-9][0-9]|1[0-9]{1}|2[0-4][0-9]|25[0-5])"


四、注意事项

1、grep (基本正则)使用中,指示符必须加反斜线,而egrep (扩展正则)中却不能加反斜线:

grep --color "(error)" *

egrep --color "(error)" *

egrep --color "&;(error)" * (&;、&;:单词锚定除外)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读