当前位置: 移动技术网 > IT编程>开发语言>正则 > Linux - 基础正则表达式、扩展正则表达式、grep使用正则表达式

Linux - 基础正则表达式、扩展正则表达式、grep使用正则表达式

2020年07月15日  | 移动技术网IT编程  | 我要评论

 BRE(基础正则表达式):

    ^             匹配行首
    $             匹配行尾
    .             匹配任意单个字符
    *             匹配0个或者多个字符
    []            匹配括号内的字符
    [^]           匹配不包含^后的任意字符
   

BRE(基础正则表达式)只承认的元字符有^$.[]* 其他字符识别为普通字符。

ERE  (扩展正则表达式)则添加了() {} ? + | 等。

      只有在用反斜杠“\”进行转义的情况下,字符() {}才会在BRE被当作元字符处理,而BRE中,任何元符号前面加上反斜杠反而会使其被当作普通字符来处理。

ERE(扩展正则表达式)

()  分组过滤被括起来的东西表示一个整体(一个字符)   --》对应的BRE形式为: \(\)
|   表示或者同时过滤多个字符
?   重复前面一个字符0次或1次(.是有且只有1个) --》对应的BRE形式为: \?
+   重复前一个字符一次或多次,至少一次  -》对应的BRE形式为: \+
{}  用于表示重复匹配的次数  -》对应的BRE形式为: \{\}

grep 常见正则表达式

1

2

3

4

5

6

7

8

9

10

11

12

13

*    #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 

.*   #一起用代表任意字符。  

[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。   

[^]  #匹配一个不在指定范围内的字符

\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   

\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。   

\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。   

x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。   

x\{m,\} #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。   

x\{m,n\}#重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  

\w    #匹配文字和数字字符,也就是[A-Za-z0-9],

\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  

\b    #单词锁定符,如: '\bgrep\b'只匹配grep。

grep 使用的是基础正则表达式,如果要使用扩展正则表达式,需转义 或者 直接使用 egrep+扩展正则表达式

1. 匹配包含有两个o的行

grep -n 'o\{2,\}' 2.txt 或者 egrep -n 'o{2,}' 2.txt 

2. 找出Love 或者love开头的行

grep -n '[Ll]ove' 2.txt

3. 找出good或者glad的行

egrep -n 'g(oo|la)d' 2.txt   或者 egrep -n 'good|glad' 2.txt

 

 

本文地址:https://blog.csdn.net/u012865840/article/details/107341731

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网