说明

正则表达式:Regular Expression,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
JavaScript 正则语法:/正则表达式主体/修饰符(可选)
修饰符 描述
i 执行对大小写不敏感的匹配
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m 执行多行匹配
开始和结束
^ 表示字符串以 ^ 后面的字符开始才能匹配,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符。
$表示字符串以 $ 前面的字符结束才能匹配。
通配符
使用通配符和特殊的转义字符来匹配更多的字符
  • . 匹配除换行符外的任何字符
  • \w 匹配字母或数字或下划线
  • \W 匹配任意不是字母,数字,下划线,汉字的字符
  • \b 匹配单词的开始或结束
  • \B 匹配不是单词开头或结束的位置
  • \d 匹配数字
  • \D 匹配非数字
  • \s 匹配空格
  • \S 匹配任何非空白
  • \n 匹配新行
特定数量
将特定数量的匹配字符或组与量词匹配
  • * 匹配前面的子表达式零次或多次
  • + 匹配 1或 n 次
  • ? 匹配 0或1 次
  • {n} 重复 n 次
  • {n,} 重复 n 次或更多次
  • {n,m} 重复 n 到 m 次
字符组 []
字符组有助于匹配特定字符或者特定的字符序列。它们可以像字符简写式那样代表一大批字符,比如 \d 匹配的字符与 [0-9] 所匹配的字符一样。
对字符组取反会匹配与字符组内容不匹配的字符。比如,如果不想匹配数字,可以这样写:[^0-9]
小括号匹配组
使用 () 捕获组, () 会返回完整匹配加上组,除非您使用 g 标志,使用管道运算符 | 在 () 内部以指定该组匹配的内容,相当于或
反斜杠
要匹配特殊字符,请使用反斜杠 \
JavaScript 正则表达式中的特殊字符是^ $ \。 * +? () [] {} |
因此,要匹配一个星号,可以使用 \*,不只是 *
常用正则表达式
  • 匹配 Html 中的 属性:\s*\S*="[^"]+"\s*
  • 匹配 Html 中的 链接:<a [^>]*href\s*=\s*['""]([^'""]+)['""][^>]*>