. #匹配任意字符
\w \W #数字、字母大小写、下划线
\d \D #匹配数字
\s \S #匹配 任何空白字符 (空格、tab空格、换行) \S 匹配 任何非空字符
[abc] [a-z] [0-9] #[选择范围] 匹配括号中的任意一个字符
[\u4e00-\u9fa5] #匹配所有中文字符 unicode
+ #重复一次或多次 [范围]+ 例:[yY] [oO]+
* #重复零次或多次 [范围]* 例:[yY] [oO] + [!~.]*
? #重复零个或一个 [范围]? 例:[yY] [oO] +p? [!~.]*
{a , b} #指定重复范围, 重复a次到b次 例:yo{1, 4}
\b #单词边界 例:\byo\b 能匹配 mu yo mu,不能匹配 muyomu
() #分组匹配 例:(.+)飞飞,(.+)追追
李双蛋飞飞,王花花追追
$2飞飞,$1追追,$2追到要嘿嘿嘿
王花花飞飞,李双蛋追追,王花花追到要嘿嘿嘿
(?:模式) #匹配分组但不捕获
例:如何仅匹配移动号码 并取最后4位,不匹配联通号
1(?: 37 | 38 | 82 | 83) \d{4} (\d{4}) 取$1
13712241000
13822232000
18289993000
18398754000
13112241000
17722232000
(?=模式) #正向肯定预查,(?=元) 表示表达式里的字符肯定得有,但是不匹配它
\d+(?=元)
例:匹配下面“元”前的数值
100元
1000元
100刀
100镑
(?!模式) #正向否定预查,(?!元) 表示表达式里的字符肯定不能有
例:
\d+(?!元) 的匹配结果100元 1000元 100刀 100镑, 不能达到匹配下面“元”前的数值
解决方法:\d+(?!元 | \d) 表示末位不能是"元" 或者 数字
匹配结果100元 1000元 100刀 100镑
反向预查JavaScript不支持
(?<=模式) #反向肯定预查,(?<=¥) 表示表达式里的字符肯定得有,但是不匹配它
(?<=¥)\d+
例:匹配下面“¥”后的数值
¥100
¥1000
$100
£100
(?<!模式) #反向否定预查,(?<!¥) 表示表达式里的字符肯定不能有
例:
(?<!¥)\d+ 的匹配结果¥100 ¥1000 $100 £100, 不能达到匹配下面“元”前的数值
解决方法:(?<!¥|\d)\d+ 表示末位不能是"元" 或者 数字
匹配结果¥100 ¥1000 $100 £100
教程地址:http://biaoyansu.com/28.7
{n} #重复n次
{n,} #重复n次或更多次
{n,m} #重复n到m次