正则表达式

正则表达式不局限于语言,可以让我们方便的去匹配字符串,只需要按它的语法规则书写表达式。

单个匹配

  • .,表示匹配任意一个字符
  • \d,匹配0-9的数字
  • \D,匹配非数字
  • \w,匹配一个word,字母、数字、下划线
  • \s,匹配一个空格字符,java中可以用它匹配\t

多个匹配

  • \d*,表示匹配多个数字,0-n
  • \d+,至少一个数字,1-n
  • \d?,最多一个数字,0-1
  • \d{n},n个数字
  • \d{n,m},n-m范围个数字

复杂匹配

  • ^,开头$,结尾,^A\d{3}$,以A开头三个数字结尾
  • \d可以匹配0-9这个范围,如果想自定义范围可以用[1-9],表示一个1-9的数字可以取反[^1-9],[^1-9]{n}表示不是1-9的n个数字
  • |,表属或
  • (),分组匹配,"123000"对于这个字符串可以用\d+匹配,我们想匹配末尾0的个数,可以考虑分组(\d+)(0*),但是这样第一组就可以匹配整个串,所以要加?让第一组尽可能少的匹配(非贪婪匹配)(\d+?)(0*)

使用日志

1
2
[^\.]+\.(net|com)//匹配顶级域名
[\.](pdf|doc|docx)$//以文件后缀结尾