轻键快码

读Javascript正则表达式迷你书总结

轻键快码 正则

Javascript正则表达式迷你书老姚

正则表达式是匹配模式,要么匹配字符,要么匹配位置.

正则表达式是匹配模式,要么匹配字符,要么匹配位置.

正则表达式是匹配模式,要么匹配字符,要么匹配位置.

横向模糊匹配

横向模糊匹配指的是一个正则可匹配的的长度不固定, 使用量词来实现 {m, n}, 表示最少出现 m 次, 最多出现 n 次.

纵向模糊匹配

纵向模糊匹配指的是在匹配具体一个字符时可以是不确定的, 实现的的方式是字符组 [xyz], 可以匹配 x, y, z 中任意一个字符.

字符组

字符组表示其中一个字符, [abc] 表示a, b, c 其中一个.

  • 范围表示法, 使用连字符 - 来省略和缩写, [abcdef] 可以用 [a-f] 来表示, 要匹配连字符时需要转义 \-, 或者将连字符放在开头或结尾.

  • 排除字符组, 使用 ^ 对字符组求反, [^abc] 表示任何不是 a, b, c 的字符.

  • 缩写形式, \d 表示 [0-9] 是一位数字, \D 表示除数字外的任意字符; \w 表示 [0-9a-zA-Z_] 一个单词字符, \W 表示非单词字符; \s 表示空白符, 包括空格、水平制表符、垂直制表符、换行符、回车符、换页符; \S 表示任意非空字符;. 表示任意字符;

量词

  • 简写形式 {m,} 表示至少出现 m 次, {m} 表示出现 m 次, ? 表示出现0或1次, + 表示至少出现1次, * 表示出现任意次.

  • 贪婪匹配与惰性匹配,贪婪匹配表示尽可能多的匹配, 惰性匹配指的是尽可能少的匹配. 通过在量词后面添加 ? 号实现惰性匹配.

分支

分支指的是在多种子模式中选择一种, 用管道符符 | 实现, p1|p2|p3 表示选择 p1 或 p2 或 p3 其中一种模式.

位置匹配

位置可理解为空字符 ''.

  • ^ 匹配开头, $ 匹配结尾.

  • \b 表示单词边界, 指的是 \w\W 之间的位置, 也包括 \w^ 之间的位置, 也包括 \w$ 之间的位置, \B 表示非单词边界。

  • (?=p) 匹配模式 p 前面的位置, 指该位置后面的字符要匹配模式 p, (?!p) 表示不匹配模式 p 前面的位置.

未完待续。。。