正则表达式、grep使用

前端之家收集整理的这篇文章主要介绍了正则表达式、grep使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、正则表达式

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

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


1、基本正则表达式

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

字符边界符,与\<、\>功能类似,如:\bpattern\b (锚定单词

\(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)" * (\<、\>:单词锚定除外)

原文链接:https://www.f2er.com/regex/362496.html

猜你在找的正则表达式相关文章