首先正则表达式分为三类(man grep可以看到,别离是basic RegExs,extended RegExs,perl RegExs)
正则表达式:在计较机科学中,是指一个用来描写可能匹配一系列切合某个句礼貌则的字符串的单个字符串。在许多文本编辑器或其他东西里,正则表达式凡是被用来检索或替换那些切合某个模式的文本内容。正则表达式这个观念最初是由Unix中的东西软件(譬喻sed和grep)普及开的。
一、正则表达式分类:
1、根基的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)
2、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)
3、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)
说明:只有把握了正则表达式,才气全面地把握 Linux 下的常用文本东西(譬喻:grep、egrep、GUN sed、 Awk 等) 的用法
二、Linux 中常用文本东西与正则表达式的干系
常握 Linux 下几种常用文本东西的特点,对付我们更好的利用正则表达式是很有辅佐的
grep , egrep 正则表达式特点:
1)grep 支持:BREs、EREs、PREs 正则表达式
grep 指令后不跟任何参数,则暗示要利用 ”BREs“
grep 指令后跟 ”-E" 参数,则暗示要利用 “EREs“
grep 指令后跟 “-P" 参数,则暗示要利用 “PREs"
2)egrep 支持:EREs、PREs 正则表达式
egrep 指令后不跟任何参数,则暗示要利用 “EREs”
egrep 指令后跟 “-P" 参数,则暗示要利用 “PREs"
3)grep 与 egrep 正则匹配文件,处理惩罚文件要领
a. grep 与 egrep 的处理惩罚工具:文本文件
b. grep 与 egrep 的处理惩罚进程:查找文本文件中是否含要查找的 “要害字”(要害字可以是正则表达式) ,假如含有要查找的 ”关健字“,那么默认返回该文本文件中包括该”关健字“的该行的内容,并在尺度输出中显示出来,除非利用了“>" 重定向标记,
c. grep 与 egrep 在处理惩罚文本文件时,是按行处理惩罚的
sed 正则表达式特点
1)sed 文本东西支持:BREs、EREs
sed 指令默认是利用"BREs"
sed 呼吁参数 “-r ” ,则暗示要利用“EREs"
2)sed 成果与浸染
a. sed 处理惩罚的工具:文本文件
b. sed 处理惩罚操纵:对文本文件的内容举办 --- 查找、替换、删除、增加等操纵
c. sed 在处理惩罚文本文件的时候,也是按行处理惩罚的
Awk(gawk)正则表达式特点
1)Awk 文本东西支持:EREs
awk 指令默认是利用 “EREs"
2)Awk 文本东西处理惩罚文本的特点
a. awk 处理惩罚的工具:文本文件
b. awk 处理惩罚操纵:主要是对罗列办操纵
三、常见3中范例正则表达式较量
字符
说明
Basic RegEx
Extended RegEx
python RegEx
Perl regEx
^$ 匹配空行 \>
转义
\
\
\
\
^
匹配行首,譬喻'^dog'匹配以字符串dog开头的行(留意:awk 指令中,'^'则是匹配字符串的开始)
^
^
^
^
$
匹配行尾,譬喻:'^、dog$'匹配以字符串 dog 为末了的行(留意:awk 指令中,'$'则是匹配字符串的末了)
$
$
$
$
^string$
匹配行,譬喻:'^dog$'匹配只含一个字符串 dog 的行
^string$
^string$
^string$
^string$
\<
匹配单词,譬喻:'\<frog' (等价于'\bfrog'),匹配以 frog 开头的单词
\<
\<
不支持
不支持(但可以利用\b来匹配单词,譬喻:'\bfrog')