正则表达式30分钟入门教程

关于正则,知识点非常全面的一个学习教程:https://deerchao.net/tutorials/regex/regex.htm

注意组合:(?   )

1、\w+(?=exp)零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp

  如:\b\w+(?=ing\b)匹配以ing结尾的单词的前面部分(除了ing以外的部分),如查找I'm singing while you're dancing.时,它会匹配sing和danc

  (?<=exp)\w+零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp

  如:(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading

2、\w+(?!exp)零宽度负预测先行断言断言此位置的后面不能匹配表达式exp

  如: \d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字;\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词(英文环境下)

  (?!exp)\w+零宽度负回顾后发断言,断言此位置的前面不能匹配表达式exp

  如: (?<![a-z])\d{7}匹配前面不是小写字母的七位数字

3、(?<Name>\w+)(?'Name'\w+):给子表达式命名组名,引用组名使用:\k<Name>或\k'Name'

  如:\b(?<Word>\w+)\b\s+\k<Word>\b匹配:go go, 或者kitty kitty

  注意:如无效,可用组号代替,如:\b(\w+)\b\s+\1\b 推荐,组号规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。

4、(?#comment):注释

posted @ 2017-10-26 19:12  xinlingdetaiyang  阅读(126)  评论(0)    收藏  举报