本文中用n指代具体字符 概述 核心——正则表达式是匹配模式,要么匹配字符,要么匹配位置。 组成——修饰符、元字符、量词、特殊符号和特定语言API。 基础量词 n+ 大于等于1个字符
概述本文中用n指代具体字符
-
核心——正则表达式是匹配模式,要么匹配字符,要么匹配位置。
-
组成——修饰符、元字符、量词、特殊符号和特定语言API。
n+ 大于等于1个字符
n* 大于等于0个字符
n? 包含0个或1个字符
n{x} 包含x个字符
n{x,} 包含x个以上字符
n{x,y} 包含x到y个字符
修饰符
g 全局匹配
i 字母大小写不敏感
m 多行匹配
y 粘连匹配
s 拓展点字符(任意字符)
u 处理超范围Unicode字符
元字符
\d\D 数字/非数字
\w\W 字母/非字母
\s\S 空白/非空白
\b\B 单词/非单词边界
\xxx 查找8进制字符
\udd 查找16进制
\数字 反向引用
特殊符号
() 分组
[] 字符组
| 或
?=n/?!n 先行断言
?<=n/><!n 后行断言
^ 匹配开头
$ 匹配结尾
特定语言API
RegExp.prototype.compile // 编译正则表达式。
RegExp.prototype.test // 检索字符串中指定的值。返回 true 或 false。
RegExp.prototype.test // 检索字符串中指定的值。返回找到的值,并确定其位置。
String.prototype.search // 检索与正则表达式相匹配的值。
String.prototype.match // 找到一个或多个正则表达式的匹配。
String.prototype.replace // 替换与正则表达式匹配的子串。
String.prototype.split // 把字符串分割为字符串数组。
应用
位置
开头/结尾:^、$
单词边界:\b、\B
断言/环视:?=n、?!n、?<=n、?<!n
模糊匹配
(量词)横向模糊匹配:n{x,y}、n{x,}、n+、n*、n?
(字符组)纵向模糊匹配:[]、\d、\D、\w、\W、\s、\S
分组/分支/引用
分组:()
分支:|
引用:\数字