1. 为啥要写
正则表达式在任何开发语言中都用的到,连写个linux命令都能用的到,用来指定检索、替换的规则模式。虽然它非常万能,但是有个很大的缺点,那就是 对老年选手太不友好了。想用好正则表达式,就得记住一堆符合(符号组合)及其作用。对鄙人来说,经常忘了查,查了忘。“查”的过程又经常比较繁琐,索性写点符合自己需求的内容,省的以后又是一顿xjb查。。。
2. 要写啥
这里不再写关于js如何使用正则的内容了,写多了容易乱。这里,只说“正则表达式”这个东西。
3. 基础工具内容 字符相关
1. 普通字母与数字
写啥匹配啥,怼就完了。
2. 符号
大多数的符号都在正则中表达特殊的含义,因此想匹配符号,一般要加个转义符 \
。如 \.
、\?
等。
3. 字符集
用方括号 [ ] 包裹其他字符,用来匹配其中所包含的任意一个字符。
一定记住匹配出来的是一个字符
。里面所包含的字符,都是“或”的关系。
比如 [abcde]
匹配的是 a 或 b 或 c 或 d 或 e。
-
用来表示范围,比如 [0-9]
匹配的是一个 0 到 9 之间的数字。^
写在方括号里的最前面,用来表示不属于方括号内容的其他字符,比如 [^a-z]
匹配到的是除了 小写a 到 小写z 这26个字母之外的其他任意一个字符。
4. 带字母的元字符
转义符加一个字母,用来匹配特定范围的一个字符。 一个字符。
常见常用的:
符号 含义 等价
\d 数字 [0-9]
\D 非数字 [^0-9]
\w 数字字母下划线 [a-zA-Z0-9_]
\W 非数字字母下划线 [^a-zA-Z0-9_]
\s 空白字符 空格 制表符等 [ \f\n\r\t\v](注意前边有个空格)
\S 非空白字符 [^ \f\n\r\t\v]
\b 单词边界(不匹配实际字符)
\B 非单词边界(不匹配实际字符)
不常用的不写了 老老实实去查吧。
记忆技巧 符号的 小写字母 与 大写字母 对应的字符是互补的关系。记住一个,另一个就知道是啥意思了。
5. 所有字符
.
常常被我们用来在正则中 匹配“任意一个”字符使用,BUT 其实 .
匹配的字符是不包括 \n
(换行) 与 \r
(回车)的。
要想要真正意义上匹配所有字符(1个),要使用 [\s\S]
或者 [\w\W]
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。