正则表达式的概念

A Regular Expression is the term used to describe a codified method of searching invented, or defined, by the American mathematician Stephen Kleene

文本过滤工具,能够实现根据指定的模式(pattern) 逐行检查文件内容,并将匹配的行显示出来

个人理解就是通过元字符或者其他字符的组合成pattern 在文本中搜索出符合条件的行,打印到屏幕上。


正则表达式的分类

extended regular expressions (EREs)

Basic Regular Expressions


正则表达式的元字符

. :匹配任意单个字符

.*:匹配任意长度任意字符

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

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

次数匹配
* :匹配其前的字符 0,1,或多次  也就是>=0次

?:匹配其前的字符 0,1次 也就是 >=0 <=1次

\{m,n\}:匹配精确的字符次数

\{m,\}: 至少m次

\{0,n\}:至多n次

\{m\}:精确m次

单词锚定
\<: 锚定词首    \<root
\>: 锚定词尾    root\>        
全部:\<root\>


行首锚定:
^: 脱字符
$: 行尾锚定


分组:
\(\)    x\(ab\)*y
后项引用:\(l..e\).*\1r
   grep  '\(1..e\).*\1r' grep.txt

正则表达式的例子

. :匹配任意单个字符

wKioL1M-GCmwyvpdAAD_T_3sZuQ254.jpg

.*:匹配任意长度任意字符

wKiom1M-GRPDURxDAAFmyZQ2wH4194.jpg

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

wKioL1M-GXOh7f9iAAFVnrMlyb0315.jpg

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

wKiom1M-GjLR7rMAAAGZ9dfd3nc607.jpg

* :匹配其前的字符 0,1,或多次  也就是>=0次

wKioL1M-Hz-RqG9dAACUlqRRSeY773.jpg

wKioL1M-GrzhapgcAABRwlAkHJQ981.jpg

?:匹配其前的字符 0,1次 也就是 >=0 <=1次

wKioL1M-Hg2gPcDkAAAjv43su8I353.jpg

\{m,n\}:匹配精确的字符次数

wKioL1M-Hc7CvaxQAAAohgmZcq8491.jpg

\{m,\}: 至少m次

wKiom1M-HnTSqggPAAAqW552vKg916.jpg

\{0,n\}:至多n次

wKioL1M-Hr-CVFIpAAA7iyVV774864.jpg

\{m\}:精确m次

wKiom1M-HyfB_wTsAABHyRlxhbA031.jpg

\<: 锚定词首

wKioL1M-H-Lj9LZVAAB-DgXr4iM840.jpg

\>: 锚定词尾

wKioL1M-ICXDotdsAACqe2ENbDc544.jpg

全部:\<root\>

wKioL1M-IHaT66syAACOSzXbHeo513.jpg

^: 脱字符


wKiom1M-IPCyUfGOAAC0nw4n3Ok224.jpg

$: 行尾锚定

wKiom1M-ITGh-1XMAABhyAKY3N4045.jpg

\(\)

wKiom1M-Idajn1FOAAC_Aq3HxTI060.jpg

后项引用 \1

wKiom1M-Im2j7LsYAADMUPC2ang852.jpg