正则表达式重温

bash Shell本身并不支持正则表达式,使用正则表达式的是Shell命令和工具,如grep,sed,awk等。但是bash Shell可以使用正则表达式中的一些元字符实现通配

一、基本正则表达式元字符

1. “*”  表示重复该字符前边字符0次或多次。

2. “.”   表示任意字符.

3. “^”  表示该字符后边的字符是行首。

4. “$”  表示该字符前边的字符是行尾。

5. “[]”

  • [a-z]      表示小写字母a-z
  • [0-9]  表示数字0-9
  • 若 “^” 在框里边,那么久表示非。
  • [^a-c]   匹配不在a-c范围内的所有字符。

6. “”  转义字符

7. “<>”  精确匹配

  • <the>     表示匹配the单词,但是不包阔含有the的单词,如they,there。

8. “{}”  指定前边字符重复的次数。

  • {n}          匹配前面字符出项 n 次。
  • {n,}         匹配前边字符最少出现 n 次。
  • {n,m}      匹配前边字符出现 n-m 次。

二、正则表达式的扩展

1. “?”  匹配?前边字符 0 次或 1 次。

2.  “+”  匹配前边字符1次或多次(最少也要1次)

3. “()”和“|”  通常两字符结合使用。表示一组可选的字符的集合。  

  • sjx(a|b|c)zl     只要含有a,b,c任意一个都可以匹配到。
  • 其实()很少用,“[]”可以完全取代“()”,如: sjx(a|b|c)al和sjx[abc]zl就等价。
  • “|”也可以用在在多个正则表达式之间。

三、通配

最常用的通配符包括正则表达式元字符,与正则表达式中的表示的意义不完全一致,如;

  • “*”表示任意位的任意字符,可以是多个任意字符。
  • “?”表示1个任意字符。
  • “^”表示取反。

四、grep命令

 

原文地址:https://www.cnblogs.com/sjxbg/p/5571724.html