正则表达式:REGular EXPression,REGEXP


grep:使用基本的正则表达式定义的模式来过滤文本的命令

参数:

-i, --ignore-case 忽略字符大小写

-v, --invert-match 反相搜索

-o, --only-matching 只显示匹配项

--color 显示颜色

-E, --extended-regexp 扩展的正则表达式

-A NUM, --after-context=NUM 显示匹配项后面NUM行

-B NUM, --before-context=NUM 显示匹配项前面NUM行

-C NUM, -NUM, --context=NUM 显示匹配项上下各NUM行


元字符:

.:匹配任意单个字符

touch一个文件

wKiom1cpn1fzagelAAAHYouJBOw881.png

对test.txt文件使用grep,单独查询‘a’

wKioL1cpoJaSJGQSAAAL_Z3uj5Q079.png

使用‘.’

wKioL1cppvXjn2VTAAAQwQZpIio148.png

以‘a’结尾,前面任意一个字符,以‘a’开头,后面任意一个字符。

[]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

wKioL1cpqOWA0KUgAAAfQg2D39E572.png

字符集合:

纯数字 [[:digit:]]或[0-9] 

小写字母 [[:lower:]]或[a-z] 

大写字母 [[:upper:]]或[A-Z] 

大小写字母 [[:alpha:]]或[a-zA-Z] 

数字加字母 [[:alnum:]]或[0-9a-zA-Z] 

空白字符 [[:space:]]  

非空白字符[^[:space:]] 

标点符号 [[:punct:]]


匹配次数(贪婪模式--尽可能多的去匹配):

*:匹配其前面的字符任意次

\?:匹配其前面的字符1次或0次

\{m\}:匹配其前面的字符m次(精确匹配)

\{m,n\}:匹配其前面的字符至少m次,至多n次


位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首

$:锚定行尾,次字符前面的任意内容必须出现在行尾

^$:空白行


\<或\b:锚定词首,其后面的任意字符必须作为单词的首部出现

\>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现


分组:

\(\):后续引用

\1:引用第一个左括号以及与之对应的右括号所包括的所有内容

\2:引用第二个左括号以及与之对应的右括号所包括的所有内容