正规表示法

1. 什么是正规表示法
正规表示法就是处理字符串的方法,他是以行位单位来进行字符串的处理行为,正规表示法透过一些特殊符号的辅助,可以让使用者轻易地达到[搜索/删除/取代]某特定字符串的处理程序。
2. 基础的正规表示法
   2.1 利用中括号[]来搜寻集合字符
      其实[]里面不论有几个字符,它都仅代表某一个字符。
   2.2 行首与行尾字符^ $
    注意:^符号,在字符集合符号(括号[])之内与之外是不同的。在[]内代表反向选择,在[]之外则代表定位在行首的意义。$ 则代表定位在行尾。
   2.3 任意一个字符.与重复字符*
    - . (小数点):代表一定有一个任意字符的意思
    - *(星星号):代表重复前一个0到无穷多次的意思,为组合形态
    - .*: 代表零个或多个任意字符
   2.4 限定连续RE字符范围{}
   基础的正规表示法特殊字符汇整如下:
   ^word : 待搜寻的字符串word在行首
   word$: 待搜寻的字符串word在行尾
   .: 代表[一定有一个任意字符]的字符
   \: 将特殊符号的特殊意义去除
   *:重复零个到无穷多个的前一个RE字符
   [list]: 字符集合的RE字符,里面列出想要撷取的字符  
   [n1-n2]: 字符集合RE字符,里面列出想要撷取的字符范围
   [^list]: 字符集合的RE字符,里面列出不要的字符串或范围
   \{n,m\}:连续n到m个的前一个RE字符
   \{n,\}: 连续n个以上的前一个RE字符

3. 延伸正规表示法

例如我们要去除regular_express.txt文件中的空白行与行首为#的行列,使用的是 grep -v '^$' regular_express.txt|grep -v '^#',需要使用到管线命令来搜索两次。那么如果使用延伸型的正规表示法,则可以简化为:

egrep -v '^$|^#' regular_express.txt

延伸型正规表示法的特殊符号:

+ :重复一个或一个以上的前一个RE字符

?:零个或一个的钱一个RE字符

|:用或的方式找出数个字符串

():找出群组字符串

()+:多个重复群组的判别

猜你喜欢

转载自lingxiayidu-wjx.iteye.com/blog/2364135