正则表达式学习笔记

正则字符匹配规则

  1. ^ 行首的意思
  2. $结尾处
  3. * 通配符
  4. \b匹配一个单词边界,单词与空格之间的位置,\w+\b切开成每个单词
  5. \d表示数字, \d{5}五位数字, [0-9]数字0~9
  6. \w 字母,数字,下划线
  7. -匹配短破折号
  8. \r或者\n换行符
  9. \t制表符
  1. \\ \本身
  2. \s 空格,制表符,换页符等空白字符中的任意一个
  3. .匹配除了换行符以外的任意字符
  4. [ab5@] 匹配ab5@
  5. [^abc] 匹配除了a b c 以外的任意一个字符
  6. [f-k]匹配fk之间的任意一个字母(包含f k)
  7. [^A-F0-3] 匹配 AF03以外的任意一个字符
  8. {n} 表达式重复n次,比如 \w{2} ==\w\w 或者 a{4} == aaaa
  9. {m,n}表达式重复最少m次 最多重复n次, 比如 ha{2,3}=>可匹配到 haa haaa
  10. {m,}贪婪模式,表达式至少重复m次,比如\w\d{3,}=>可匹配 g123 b456789… 数字可以重复3个以上
  11. ?匹配0次或者1次, 比如 qw? —> qqqw=> qq,qq,qw =>q?,q?,qw 匹配结果就是 q, q, qw
  12. +至少匹配一次以上, a+b => 匹配到 ab aab aaab
  13. |修饰表达式或语句,不是匹配左边就是右边,两个条件均可
  14. ()修饰一个整体,括号内的表达式可以单独获取
  15. \x 表示编号在0~255范围内的字符,空格可以表示成 \x20
  16. \u \uxxxx表示16进制的数,比如: \x4E2D
  17. \S匹配一个非空白字符 , \s匹配一个空白字符
  18. \D匹配非数字字符
  19. \W匹配所有字母,数字,下划线以外的字符
  20. \B匹配非单词边界
  21. ?: 可以理解为函数封装的形式, 比如 (?:(\w)\1)+ 这个规则去匹配 e233t66i34p=>结果是33 66 , ?:是封装了一个 (\w)这样不会调用,而使用\1就是调用这句表达式

需要加反斜杠转义的字符

^ $ () {} [] . ? + * |

常用正则

  1. [\u4e00-\u9fa5]匹配中文字符

  2. [^\x00-\xff]匹配双字节字符(包括汉子在内)

  3. \n\s*\r匹配空白行

  4. [\w!#$%&’+/=?^_`{|}~-]+(?:.[\w!#$%&’+/=?^_`{|}~-]+)@(?:[\w](?:[\w-][\w])?.)+\w? 匹配邮箱

  5. [a-zA-z]+://[^\s]*匹配网址

  6. \d{3}-\d{8}|\d{4}-\{7,8}匹配电话号码 (PS. 新出的手机号已经不适用了)

  7. ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$匹配身份证号

参考手册

正则手册