一篇超厉害的正则表达式简明攻略

字母、数字、汉字、下划线、以及后续没有特殊定义的标点符号,都是”普通字符”。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。如:表达式 “a”,在匹配字符串 “abcde” 时,匹配到的内容是:“a”。

转义字符

一些不便书写的字符,采用在前面加 “\” 的方法。常见的如:

  •  \r: 回车
  •  \n: 换行符
  •  \t: 制表符
  •  \: “\” 本身

此外,还有其他再正则中有特殊用处的标点符号,在前面加 “\”后,代表该符号本身。如:^, “ 字符,需要写成 “\^” 和 “$”。如

  •  \^: 匹配^符号本身
  •  \$: 匹配$符号本身
  •  \.: 匹配小数点. 本身

其匹配规则和普通字符串是一样的,如“\^”匹配“a^bc”中的“^”。

‘多种字符’匹配

  •  \d:任意一个数字,0~9 中的任意一个
  •  \w:任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
  •  \s:包括空格、制表符、换页符等空白字符的其中任意一个
  •  .:小数点可以匹配除了换行符以外的任意一个字符

如:表达式 “\dtest\d”匹配”1test2”。

除了正则自带的“多种字符”匹配外,还可以通过中括号[]来自定义。

  •  使用[ ]包含一系列字符,能够匹配其中任意一个字符。
  •  用 [^ ]包含一系列字符,则能够匹配其中字符之外的任意一个字符。

如:[123]匹配 “1”或”2”或“3”;[^abc]匹配 “a”、”b”、”c” 之外的任意一个字符。

这里需要注意的是,在使用[]时,只有会改变字符组含义的才需要转义,

  •  反斜线必须转义
  •  方括号必须转义
  •  「^」在首和「-」在中必须转义

其他情况即使是特殊字符也不需要转义,如:

  •  [aeiou]
  •  [$.*+?{}()|]
  •  [abc^123-]

匹配次数

“次数修饰”放在”被修饰的正则表达式”后边,可以匹配多次。如:

  •  {n}: 表达式重复n次,比如:“\d{2}” 相当于 “\d\d”。
  •  {m,n}:表达式至少重复m次,最多重复n次,比如:“a{1,3}”可以匹配 “a”或”aa”或”aaa”。
  •  {m,}: 表达式至少重复m次,比如:“\d{2,}”可以匹配 “12”,“123”,“12345678”。
  •  ?: 匹配表达式0次或者1次,相当于 {0,1},比如:“a[b]?”可以匹配”a”,“ab”。
  •  +: 表达式至少出现1次,相当于 {1,},比如:“a+”可以匹配”a”,“aa”,“aaa”。
  •  *: 表达式不出现或出现任意次,相当于 {0,},比如:”ab“可以匹配 “a”、”ab”、”abb”。

特殊符号

  •  ^: 与字符串开始的地方匹配,不匹配任何字符,这里如果使用(?m)模式,则匹配每一行的开始。如:“^aaa”无法匹配 “xxxaaaxxx”,可以匹配”aaaxxx”。
  •  $: 与字符串结束的地方匹配,不匹配任何字符,这里如果使用(?m)模式,则匹配每一行的结束。如:“aaa$”无法匹配“xxxaaaxxx”, 可以匹配“xxxaaa”。
  •  \b:匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符。它与 “^”、”$“ 类似,本身不匹配任何字符,但是它要求它在匹配结果中所处位置的左右两边,其中一边是 “\w” 范围,另一边是 非“\w” 的范围。。如:“.\b.”匹配“@@abc”的“@a”。
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章