Skip to main content

正则基础

创建方式

  • 使用RegExp()构造函数创建
  • 直接量语法来创建
var pattern = /s$/   等价于 var pattern = new RegExp("s$")
# 两种方式都代表匹配 **所有以字母 `s` 结尾的字符串 **

定义

正则表达式的模式规则是由一个字符序列组成的,包括所有的字母和数字在内,大多数的字符都是按照 直接量 仅描述待匹配的字符的 /java/ 可以匹配任何包含'java'子串的字符串。除此之外正则表达式中还有其他特殊语义的字符---元字符

字符类

将直接量字符单独放进 [] 就组成了字符类。一个字符类匹配它所有包含的任意字符。

/[abc]/   # 匹配字母 "a"、 "b"、 "c" 中的任意一个

通过 ^ 符号来定义 否定字符类

/[^abc]/   3 代表匹配字母 "a""b""c" 之外的所有字符

字符类可以用连字符 - 来表示范围

/[a-z]/   # 匹配小写拉丁字母
/[a-zA-Z0-9]/ # 匹配拉丁字母表中的任何字母和数字
特殊字符类
  • \s 匹配空格、制表符、其他Unicode空白符;
  • \S 匹配非Unicode空白的字符
  • \w 匹配任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
  • \W 匹配任何不是ASCII字符组成的单词,等价于a-zA-Z0-9
  • \d 匹配任何ASCII数字,等价于[0-9]
  • \D 匹配除了ASCII数字之外的任何字符,等价于0-9

重复次数

  • + 匹配前一项1次或者多次,等价于 [1,]