简述正则表达式

正则表达式的功能:描述一个字符串模式
注意:
         正则表达式规则与文件名通配符规则不同
        正则表达式规则用于文本处理的场合
        文件名匹配规则用于文件处理的场合
正则表达式的特殊字符(元字符)
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值