首页 > 代码库 > 4.4学习笔记-REGEXP1(正则表达式)

4.4学习笔记-REGEXP1(正则表达式)

文本查找的需要:

grep egrep fgrep

grep: 根据模式,搜索文本,并将符合模式的文本行显示出来


Pattern(模式):文本字符和正则表达式的元字符组合而成的匹配条件

grep [option] PATTERN [FILE...]


grep ‘root‘ /etc/passwd

   -i 忽略字符大小写

   --color 加颜色

   -v 反向查找(显示没有被模式匹配的行)

   -o 只显示被模式匹配到的字符串


* 任意长度的任意字符

? 任意单个字符

[]:指定范围内

[^]:指定范围外


正则表达式:Regular EXPression,REGEXP

元字符:

  . 匹配任意单个字符

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

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

[:digit:] [:lower:]

[:punct:]标点符号  ---字符集合

[:upper:] [:space:] [:alpha:] [:alnum:]


字符次数(贪婪模式):

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

   a b  ab aab acb adb amnb

   a*b a出现任意次跟一个b

   a.*b ab中间任意字符

.* :任意长度的任意字符


grep ‘a\?b‘ test.txt


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

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

  \{1,\}

  \{0,3\}

grep ‘a.\{1,3\}‘ test.txt


位置锚定:

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

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

grep ‘^r..t‘  test.txt

^$:空白行


grep ‘[[:digit:]]$‘ /etc/inittab


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

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


\<root\>


grep ‘root\>‘ test.txt  以root作为词尾

grep ‘\<root‘ test.txt  以root作为词首


分组:

\(\)

  \(ab\)*  *修饰的一个ab一个整体

  后向引用

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

 \2:

 \3:

He love his lover

she like her liker.

he like his lover


grep ‘\(l..e\).*\1‘ test3.txt

grep ‘\([0-9]\).*\1$‘ /etc/inittab


4.4学习笔记-REGEXP1(正则表达式)