详解基于Linux下正则表达式(基本正则和扩展正则(3)

[root@service99 regular]# cat test.info goole go go go come on goooooooooo [root@service99 regular]# grep --color "o*" test.info goole go go go come on goooooooooo [root@service99 regular]# grep --color "go*" test.info goole go go go goooooooooo [root@service99 regular]# grep --color "w.*d" price.txt //经常与.一起使用 hello,world!

扩展正则表达式

问号

问号表示前面的字符可以不出现或者出现一次。不匹配重复出现的字符。

[root@service99 regular]# egrep --color "91?" price.txt This price is $4.99 911

加号

加号表示前面的字符可以出现一次或者多次,但必须至少出现一次,该字符若是不存在,则模式不匹配。

[root@service99 regular]# egrep --color "9+" price.txt This price is $4.99 911 [root@service99 regular]# egrep --color "1+" price.txt 1234556 911 11806

使用大括号

使用大括号指定对可重复的正则表达式的限制,通常称为间隔。

- m:该正则表达式正好出现m次

- m,n:该正则表达式出现最少m次,最多n次

[root@service99 regular]# echo "This is test,test is file." | egrep --color "test{0,1}" This is test,test is file. [root@service99 regular]# echo "This is test,test is file." | egrep --color "is{1,2}" This is test,test is file.

正则表达式实例

这里有一个实例,对基本的正则表达式进行了练习和实例。
因为正则表达式,单看概念或者理论还是比较简单的,然而在实际的使用中,却不是那么好用,一旦用好了,对效率的提升绝对时可观的。

1.过滤下载文件中包含 the 关键字

grep --color "the" regular_express.txt

2.过滤下载文件中丌包含 the 关键字

grep --color -vn "the" regular_express.txt

3.过滤下载文件中丌论大小写 the 关键字

grep --color -in "the" regular_express.txt

4.过滤 test 或 taste 这两个单字

grep --color -En 'test|taste' regular_express.txt grep --color -i "t[ae]ste\{0,1\}" 1.txt

5.过滤有 oo 的字节

grep --color "oo" regular_express.txt

6.过滤丌想要 oo 前面有 g 的

grep --color [^g]"oo" regular_express.txt grep --color "[^g]oo" regular_express.txt

7.过滤 oo 前面丌想有小写字节

egrep --color "[^a-z]oo" regular_express.txt

8.过滤有数字的那一行

egrep --color [0-9] regular_express.txt

9.过滤以 the 开头的

egrep --color ^the regular_express.txt

10.过滤以小写字母开头的

egrep --color ^[a-z] regular_express.txt

11.过滤开头丌是英文字母

egrep --color ^[^a-Z] regular_express.txt

12.过滤行尾结束为小数点.那一行

egrep --color $"\." regular_express.txt

13.过滤空白行

egrep --color "^$" regular_express.txt

14.过滤出 g??d 的字串

egrep --color "g..d" regular_express.txt

15.过滤至少两个 o 以上的字串

egrep --color "ooo*" regular_express.txt egrep --color o\{2,\} regular_express.txt

16.过滤 g 开头和 g 结尾但是两个 g 之间仅存在至少一个 o

egrep --color go\{1,\}g regular_express.txt

17.过滤任意数字的行

egrep --color [0-9] regular_express.txt

18.过滤两个 o 的字串

egrep --color "oo" regular_express.txt

19.过滤 g 后面接 2 到 5 个 o,然后在接一个 g 的字串

egrep --color go\{2,5\}g regular_express.txt

20.过滤 g 后面接 2 个以上 o 的

egrep --color go\{2,\} regular_express.txt

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjsjsx.html