正则入门

正则入门


  1. 元字符及反义
  2. 重复
  3. 分枝
  4. 分组
  5. 后向引用
  6. 零宽断言
  7. 贪婪与懒惰

一、元字符及反向引用

元字符(metacharacter),可以理解为匹配的最小单元

 匹配一个位置,它的前一个字符和后一个字符不全是w

. 匹配除了换行符以外的任意字符

d 匹配一位数字

s 匹配任意的空白符(空格、TAB、换行符、中文全角空格等)

w 匹配字母或数字或下划线或汉字等

^ 匹配字符串的开始

$ 匹配字符串的结束

反向引用,匹配不是XX的字符

S 匹配任意不是空白符的字符 W 匹配任意不是字母数字或下划线或汉字等

D 匹配任意不是数字的字符

B 匹配不是单词(正则意义中的单词)开头或结束的位置

[^x] 匹配除了x以外的任意字符

[^aeiou] 匹配除了aeiou以外的任意字符

二、重复

* 重复次数大于等于0

+ 重复次数大于等于1

? 重复次数为0/1

{n} 重复次数为n

{n,} 重复次数大于等于n

{n,m} 重复次数大于等于n小于等于m

三、分支

| 也就是或

四、分组

()

五、后向引用

1、先用()指定一个子表达式,第一个出现的分组分组号为1,第二个为2
2、后向引用用于重复搜索前面某个分组匹配的文本

(w+)s1

六、零宽断言

(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

七、贪婪与懒惰

a.*b 匹配aabab 结果:aabab

a.*?b 匹配aabab 结果:aab

原文地址:https://www.cnblogs.com/nadech/p/9188790.html