正则可以简单理解为:要匹配的内容(数字?字母?)+内容匹配的规则(次数等)
一、内容
1.1、要匹配的内容表示
代码 / 语法
说明
.
匹配除换行符以外的任意字符
w
匹配字母或数字
s
匹配任意的空白符
d
匹配数字
1.2 要匹配内容的位置
代码 / 语法
说明
匹配单词的开始或结束
^
匹配字符串的开始
$
匹配字符串的结束
1.3 内容的关系
代码 / 语法
说明
[]
表示范围
|
或
1.4 常用的反义代码
代码 / 语法
说明
W
匹配任意不是字母和数字的字符
S
匹配任意不是空白符的字符
D
匹配任意非数字的字符
B
匹配不是单词开头或结束的位置
[^x]
匹配除了 x 以外的任意字符
[^aeiou]
匹配除了 aeiou 这几个字母以外的任意字符
二、内容匹配规则
重复次数规则:
代码 / 语法
说明
*
重复零次或更多次
+
重复一次或更多次
?
重复零次或一次
{n}
重复 n 次
{n,}
重复 n 次或更多次
{n,m}
重复 n 到 m 次
三、高阶语法:
代码 / 语法 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
w | 匹配字母或数字 |
s | 匹配任意的空白符 |
d | 匹配数字 |
代码 / 语法 | 说明 |
---|---|
匹配单词的开始或结束 | |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
代码 / 语法 | 说明 |
---|---|
[] | 表示范围 |
| | 或 |
代码 / 语法 | 说明 |
---|---|
W | 匹配任意不是字母和数字的字符 |
S | 匹配任意不是空白符的字符 |
D | 匹配任意非数字的字符 |
B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了 x 以外的任意字符 |
[^aeiou] | 匹配除了 aeiou 这几个字母以外的任意字符 |
重复次数规则:
代码 / 语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复 n 次 |
{n,} | 重复 n 次或更多次 |
{n,m} | 重复 n 到 m 次 |
三、高阶语法:
分组等,后续再补充。
参考文章:正则表达式 30 分钟入门教程
四、常用工具:
1、Regexper https://regexper.com/# (测试表达式的网站:)
2、正则表达式在线测试 | 菜鸟工具 https://c.runoob.com/front-end/854 (包含一些常用正则表达式)
五、其他注意:
1、JS 全局正则表达式匹配同一字符串结果不一致 - XCMercy - CSDN 博客 https://blog.csdn.net/cccmercy/article/details/79735420
2、不包含字符串 abc 的正则表达式 - 笑的自然技术博客 - CSDN 博客 https://blog.csdn.net/xxd851116/article/details/7576624
3、js 和 java 中正则表达式的易混淆点 - 绝影 jy 的个人空间 - 开源中国 https://my.oschina.net/imjueying/blog/296077 (文章挺不错,需特别注意)