JS-正则表达式

7/10/2023 js

# 正则表达式

编写正则表达式:

  • 简单字符:所有具有意义的字符,包括(数字,字母)
  • 特殊字符:所有符号字符($,^,,*,.,...)

特殊字符

  • \ : 非特殊字符前加个反斜杠表示这是一个特殊字符, n:表示字母n, \n 表示换行; 特殊字符前加反斜杠表示这是一个普通字符, .:表示匹配任意一个字符, .:表示匹配一个 .字符
  • ^|$: 以开始|以结束
  • *|+|?: 匹配前一个字符 0次或多次|1次或多次|0次或1次
  • (foo) \1: 捕获括号,可以类比为将 foo 计为 变量 暂存, 下次需要引入 使用 \1
  • [xyz.] : 字符集合,对于.*这样的特殊字符,他们不必要转义(转移也可以起作用), 内部的.就是表示 .字符
  • \s|\b: 匹配空白字符|匹配一个词的边界

断言匹配

  1. (?:foo): 非捕获括号(区别于捕获括号)
  2. x(?=y): 仅当x后跟着y,匹配x
  3. (?<=y)x: 仅当x前跟着y,匹配x
  4. x(?!y): 仅当x后不跟着y,匹配x
  5. (?<!y)x: 仅当x前不跟着y,匹配x

标志

  • g: 全局搜索
  • i: 不区分大小写搜索
  • m: 多行搜索
  • s: 允许.匹配换行
  • u: unicode码模式匹配
  • y: 粘性搜索

参考文档

MDN (opens new window)