正则表达式

目录

简单来说,正则表达式就是记录本文规则的代码

元字符

  • .匹配除换行符意外的字符
  • \w匹配字母或下划线或汉字
  • \s匹配任意的空白符
  • \d匹配数字
  • \b匹配单词的开始和结束
  • ^匹配字符串的开始
  • $匹配字符串的结束
  • eg. \ba\w*\b匹配以字母a开头的单词—先是某个单词开始处(\b), 然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结尾处 \b\w{6}\b匹配6个字符的单词 \d+匹配1个或多个连续的数字。这里的+是和*类似的元字符,不同的是+代表1次或多次,*代表0次或多次 \d{5,12}匹配5-12个数字

字符转义

\匹配元字符本身 eg. yang419.com匹配yang419.com

重复

  • *0次或多次
  • +一次或多次
  • 0次或1次
  • {n}重复n次
  • {n,}n or more
  • {n,m}n - m

字符类

[aeiou]匹配任何一个元音字母 [,?!]匹配标点符号(,or?or!) 例如: \(?0\d{2}-]?\d{8}匹配到像(010)88886666, 022-22334455, 02912345678

分支条件

分支条件指有几种规则,如果满足其中任意一种规则都应该当成匹配,用|把不同规则分开 例如0\d{2}-\d{8}|0\d{2}[-]?\d{8}能匹配两种格式的电话号码1. 三位区号+8位本地号 2.四位区号+7位本地号

分组

目的是重复多个字符 例如(\d{1,3}\.){3}\d{1,3} \d{1,3}意思是匹配1-3位数字,(\d{1,3}.){3}这1-3位数字加.重复三次

反义

目的是排除某类字符

  • \W 匹配任意
    不是
    字母,数字,下划线,汉字的字符
  • \S匹配任意不是空白符的字符
  • \D匹配任意不是数字的字符
  • \B匹配任意不是单词开头或结束的位置
  • [^x]匹配除x以外字符
  • [^aeiou]匹配除aeiou以外字符