首页 > 代码库 > 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(正则表达式)