正则表达式基础

      正则表达式:记录文本规则的代码,用来进行文本匹配的工具。
      元字符:
                  \ b 代表单词的开始和结尾
                  . 除了换行符以外的任意字符
                  * 重复之前的字符任意次数以使得整个表达式得到匹配
                  \d 代表一个数字 ,\d{2} 代表数字重复两遍,\d+匹配一个或多个连续的数字,\d{5,12} 匹配5到12个数字
                  \w 匹配字母或数字或汉字或下划线
                  ^$ 匹配字符串的开始和结束
                  \s 匹配任意个空白符
                  [ ] 用以自定义指定范围,如[)-]表示)或者-中的一个,[0-4]表示0到4的数字
      字符转义:\\,\.,\*等 
      重复:*重复0次或更多,+重复一次或更多,?重复一次或0次,{n}重复n次,{n,}重复n次或更多,{n,m}重复n次到m次
      分支条件:用|隔开即可。如 0\d{2}-\d{8}|0\d{3}-\d{7} 分别表示两位和三位的区号。  注意分支条件是从左往右一次判断,一旦匹配成功,则不再往下判断。
      分组:用小括号形成字表达式,就可以指定其重复次数了。如IP表达式:(\d{1,3}\.){3}\d{1,3},更精确的表达式:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。
      反义:除了某几个字符以外的任意字符都能匹配。\W,\S,\D,\B均是对应以上的除此之外的字符,[^x],[^aeior]除了这些字符之外的任意字符都能匹配。
      向后引用:从左往右每个括号内的字表达式都获得一个组号依次为1、2、3...  \1则表示对表达式1的引用。如\b(\w+)\b\s+\1\b 可以捕获重复单词。 也可以指定子表达式的组名。(?\w+)或者(?'Word'\w+),反向引用为 \k。
      零宽断言:\b,^,$ 指定一个位置,该位置满足条件,称为零宽断言; (?=exp) 零宽度正预测先行断言,断言自身后面出现的表达式能够匹配。如用\b\w+(?=ing\b)查找I'm singing while you're dancing 会返回dance和sing (?<=exp) 零宽度正回顾后发断言,断言自身位置出现的前面能匹配表达式。如(?<=\bre)\w+\b 查找reading a book,将匹配ading。
      负向零宽断言: 零宽度负预测先行断言(?!exp),如\b((?!abc)\w)+\b 匹配不包含连续字符串abc的单词; 零宽度负回顾后发断言(?。
      注释:(?#comment)。
      贪婪与懒惰。 贪婪:a.*b 匹配 aabab得到 aabab,尽可能匹配多的字符; 懒惰:a.*?b 匹配得到aab,尽可能少地匹配字符。 如 *?,+?,??(重复0到一次但尽可能少),{n,m},{n,}?。
      平衡组递归匹配不介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值