正则表达式使用

测试地址:http://tool.oschina.net/regex/

一般字符:

  • .  任意一个除换行符之外的字符;例子:a.b 匹配 adb  acb  a*b ...
  • \   转义字符,使后面的符号保持原意;例子:a\.c 匹配a.c  a\\c匹配a\c
  • [...] 字符集合,只要属于里面任意一个就满足匹配;例子:[a-zA-Z]匹配一个大小写字母   [0-9]匹配一个数字
  • [^...] 字符集合取反;例子:[^a-zA-Z] 匹配一个非字母

预定义字符:

  • \d  表示数字:[0-9] 匹配一个数字
  • \D  非数字:[^0-9]=[^\d] 匹配一个非数字 
  • \s  空白字符:[空格\t\r\n\f\v]
  • \S  非空白字符:[^\s]
  • \w  字母或数字或_:[a-zA-Z0-9_]
  • \W 非字母或数字或_:[^\w] 

数量词(用在字符之后):

  • *   匹配前一个字符0次或无限次 ;举例:abc* 匹配ab和abccc...
  • +  匹配前一个字符1次或无限次;举例:abc+ 匹配abc和abccc...
  • ?  匹配前一个字符0次或1次;举例:abc? 匹配ab和abc
  • {m}  匹配前一个字符m次;举例:ab{2}c 匹配abbc
  • {m,n} 匹配前一个字符m到n次;举例:ab{1,2}c 匹配abc和abbc

边界字符:

  • ^  开始字符 \A
  • $  结束字符 \Z
  • \b  匹配单词和非单词(空格换行\w)中间的东西
  • \B  取\b反

逻辑和分组:

  • |   或;举例:today is  a (good|bad) day 匹配today is  a goodday和today is  a bad day
  • ()   分组,表示一个整体;举例:(good){2} 匹配goodgood
  • \<number> 表示编号分组匹配;举例:(\d)abc\1 匹配1abc1和5abc5等 
posted @ 2018-11-06 22:13  dangxusheng  阅读(138)  评论(0编辑  收藏  举报