简述正则表达式

来源:互联网 发布:java如何解压rar文件 编辑:程序博客网 时间:2024/05/16 07:44
正则表达式的功能:描述一个字符串模式
注意:
        正则表达式规则与文件名通配符规则不同
        正则表达式规则用于文本处理的场合
        文件名匹配规则用于文件处理的场合
正则表达式的特殊字符(元字符)
6个元字符    . * [ \ ^ $
单字符正则表达式
长的正则表达式由单字符正则表达式构成的
非特殊字符与其自身匹配
如:a与a,b与b
转义字符(\)  :     \. \* \$ \^ \[ \\
圆点(·)
匹配任意单字符

单字符正则表达式:定义集合(1)
基本用法
在一对方括号之间的字符为集合的内容,
如:单字符正则表达式[abcd]与a或b,c,d匹配
圆点,星号,反斜线在方括号内时,代表它们自己
如:[\*.]可匹配3个单字符
用减号-定义一个区间
如[a-d] [A-Z] [a-zA-Z0-9]
减号在最后,则失去表示区间的意义
[ad-]只与3个字符匹配
用^表示补集
^在开头,则表示与集合内字符之外的任意字符匹配
如:[^a-z]匹配任一非小写字母
^不在开头,则失去其表示补集的意义
如:[a-z^]能匹配27个单字符

单字符正则表达式的组合
串结
如abc, [A-Z].[0-9]·
星号(*)
单字符正则表达式后跟*,匹配此单字符正则表达式的0次或任意多次出现
例:正则表达式12*4与字符串1234不匹配,与1224,12224,14匹配
例: 正则表达式[A-Z][0-9]*    
此例中*作用的单字符正则表式为[0-9],代表
[A-Z]
[A-Z][0-9]
[A-Z][0-9][0-9]
[A-Z][0-9][0-9][0-9],等等
与A,A1,C45,D768匹配,与b64512,T56t不匹配

单字符正则表达式的组合(2)
例:正则表达式[Cc]hapter *[1-4]
在*号前有一个空格,允许数字1-4之前有多个或者0个空格。可匹配Chapter2, chapter 3等等。
例:正则表达式a\[i] *= *b\[j] *\* *c\[k]
匹配字符串a[i]=b[j]*c[k],容许等号和星号两侧有空格

正则表达式:$与^
$ 在尾部时有特殊意义,否则与其自身匹配
例:123$ 匹配文件中行尾的123,不在行尾的123字符不匹配
例:$123与字符串$123匹配
例:.$ 匹配行尾的任意字符
^ 在首部时有特殊意义,否则与其自身匹配
例:^printf匹配行首的printf字符串,不在行首的printf串不匹配
例:Hel^lo与字符串Hel^lo匹配
例:在vi中使用 :10,50s/^ //g     删除10-50行的每行行首的4个空格


0 0
原创粉丝点击