正则表达式,正则表达式语法大全


 第二讲:正则表达式与文件格式化处理

1.1 :了解有关的一些重要的特殊符号

  特殊符号                    代表意义

 [:alnum:]              代表英文大小写字符及数字即:(0-9,A-Z,a-z)

 [:alpha:]              代表任何英文大小写字符,即:a-z,A-Z

 [:upper:]              代表大写字符 即:A-Z

 [:lower:]              代表小写字符 即:a-z

 [:digit:]              代表数字而已 即:0-9

 -------------------------------------------------------------------

*注:以上几个一定要知道其意义。

--------------------------------------------------------------------

 [:space:]              代表任何会产生空白的字符,包括空格键【tab】等

 [:punct:]              代表标点符号,即:‘ “ ? ; :# $

 [:blank:]              代表空格键与[Tab]按键

--------------------------------------------------------------------

 

1.2 了解一下grep 命令

(1):grep [options] pattern(模式) file ...

        模式:是指正则表达式,元字符

        *注; 这里的模式是讲字符串或者字符,数字和元字符组合其匹配的模式

(2): grep 的选项

       -i :不区别字符的大小写;

       -v :取不包括模式的行(取反);

       -n :显示所匹配行的行号;

       -An:取匹配的行与其后n行;

       -Bn:取匹配的行与其前n行;

       -Cn:取匹配的行与其前后n行;

       --color:使其匹配的模式在结果中明亮显示

 (3):正则表达式包括:基础正则表达式和扩展正则表达式

   1,基础正则表达式的元字符:

   RE字符                  意义

    ^              待查找的字符串在行首

-----------------------------------------------------    $              待查找的字符串在行尾

-----------------------------------------------------

    .              代表一定有一个任意字符的字符

                   空格符也是字符 

-----------------------------------------------------

    \              转义字符,将特殊符号的特殊意义去除

-----------------------------------------------------

     *              重复零个到无穷多个的前一个字符

                    .*表示任意字符

-----------------------------------------------------

    [abc...]        匹配中括号中的任一个字符

-----------------------------------------------------

    [ a-z]          匹配指定范围内的任一个字符

-----------------------------------------------------

    [^A-Z]          匹配不在指定范围内的任一个字符

-----------------------------------------------------

     

     \<             词首定位符(注意其对象)(\<love

-----------------------------------------------------

     \>             词尾定位符(love\>出现在某

                    词的词尾,选取哪一行

-----------------------------------------------------

   \(..\)           匹配稍后将要使用的标签

  \(love\)able\1er   模式love被保存为标签,用\1来表示

                     表示所匹配含有loveable后跟lover

                     长字符串

-----------------------------------------------------

x\{m\}             表示字符x连续出现m次;

x\{m,\}            x至少连续出现m次;

x\{m,n\}           x至少连续出现m次,最多出现n次

-----------------------------------------------------

 2:扩展正则表达式的RE字符

 *注:. $ * ^ [a-z] [^A-Z] 的RE字符与基础正则表达式中的代表的意义一样。

    grep -E...=egrep

-----------------------------------------------------

   RE字符                        意义

-----------------------------------------------------

     +          重复一个或者一个以上前一个字符

-----------------------------------------------------

     ?         零个或一个前一个字符

-----------------------------------------------------

     |           查找good或者boy这两个字符串,可以用或(or)|这个RE字符找出;   good|boy

 *注:| RE字符是用或的方式找出数个字符串;

 注意:它是找出含有模式中的字符串的行,而不是 | 前后的字母含有的行。

    good|boy|girl......

   其实在grep中同样可以实现这种功能,只不过要在每一个|之前加上转义字符\.

-----------------------------------------------------

    ( )          字符组

查找glad 或good 可以用: g(la|oo)d

-----------------------------------------------------

1.3:关于grep egrep ,fgrep 在数据查找中查找一个字符串时,是以整行为单位来进行数据选取的。

1.4:alias grep='grep --color'

       unalias grep

*注意是单引号,看看释放别名时。

-----------------------------------------------------










本文转自 kuchuli 51CTO博客,原文链接:http://blog.51cto.com/lgdvsehome/621943,如需转载请自行联系原作者

相关内容