RegExp作用:匹配一段特殊复杂的字符串。
1.一些常用的元字符
^:匹配字符串的开始
$:匹配字符串的结束
\w:匹配任意字母数字下划线和汉字
\d:匹配数字
\b:匹配单词的开始和结束
.:匹配除换行符以外的任意字符
\s:匹配空白符
[]:匹配没有预定义元字符的字符集合 [0-9]==\d
2.重复
*:重复零次或者更多次
+:重复一次或者更多次
?:重复零次或者一次
{n}:重复n次
{n,m}:重复n到m次
3.转义字符 ----\
如果你需要输出元字符的话,比如*.,你需要取消他们的特殊意义,这时就需要用\来转义来输出
\n 换行,\r 换行,\t 制表符,\tab 制表符 。
4.反义
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
5,分组,你可以用小括号来指定子表达式(也叫做分组)
ip地址:(\d{1,3}\.){3}\d{1,3} (\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。
6分歧条件,正则表达式里的分枝条件指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开
0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。
7.例子
1.\bhi\b 精确地查找hi这个单词
2.\bhi\b.*\bLucy\b hi后面不远处跟着一个Lucy
3\b\w{6}\b刚好6个字符的单词
8懒惰限定符
1*?重复任意次,但尽可能少重复
2+?重复1次或更多次,但尽可能少重复
3??重复0次或1次,但尽可能少重复
4{n,m}?重复n到m次,但尽可能少重复
5{n,}?重复n次以上,但尽可能少重复