一、介绍
正则表达式是一种用来 匹配字符串模式 的工具。你可以把它想象成一个“字符串的搜索模板”,我们常用的场景有:
- 检查用户输入的邮箱格式是否正确
- 从一段文本中提取所有的电话号码
- 替换文本中所有重复的空格
二、正则表达式的基本语法
1、普通字符
直接匹配文本中的字符,例如:
- a 匹配字母 “a”
- 123 匹配字符串中的 “123”
2、元字符(特殊符号)
这些符号有特殊含义,例如:
以下是符合Markdown格式的表格:
| 符号 | 作用 | 示例 |
|---|---|---|
. | 匹配任意一个字符(除了换行符) | a.c 可以匹配 “abc”、“a1c” |
\d | 匹配一个数字(0-9) | \d\d 匹配 “12”、“34” |
\w | 匹配字母、数字、下划线 | \w\w 匹配 “A1”、“b_” |
\s | 匹配空格、制表符、换行符 | a\sb 匹配 “a b” |
^ | 匹配字符串的开始 | ^Hello 匹配以 “Hello” 开头的字符串 |
$ | 匹配字符串的结束 | end$ 匹配以 “end” 结尾的字符串 |
3、量词(控制匹配次数)
| 符号 | 作用 | 示例 |
|---|---|---|
| * | 匹配 0次或多次 | a* 匹配 “”、“a”、“aa” |
| + | 匹配 1次或多次 | a+ 匹配 “a”、“aa” |
| ? | 匹配 0次或1次 | a? 匹配 “”、“a” |
| {n} | 匹配 恰好n次 | a{3} 匹配 “aaa” |
| {n,m} | 匹配 n到m次 | a{2,4} 匹配 “aa”、“aaa”、“aaaa” |
4、字符集合(匹配多个字符之一)
| 符号 | 作用 | 示例 |
|---|---|---|
[abc] | 匹配 a、b、c中的任意一个 | [aeiou] 匹配元音字母 |
[^abc] | 匹配 非a、b、c的字符 | [^0-9] 匹配非数字字符 |
[a-z] | 匹配小写字母a到z | [A-Za-z] 匹配所有字母 |
三、如何理解正则表达式?
示例1:匹配手机号
假设你想匹配中国大陆的手机号(以1开头,共11位):
^1\d{10}$
- ^1:以数字1开头
- \d{10}:接着匹配10位数字(共11位)
- $:结束
示例2:匹配邮箱
^[\w.-]+@[\w.-]+\.\w+$
- ^[\w.-]+:开头是字母、数字、下划线、.或-,且至少1个字符
- @:中间必须有@符号
- [\w.-]+:@后的域名前缀(如gmail、yahoo)
- .\w+$:以.和字母结尾(如.com、.cn)
四、如何看懂复杂的正则表达式?
当看到复杂的正则表达式时,可以 分块理解:
^(\+86)?1[3-9]\d{9}$
1、^:字符串开始 (+86)
2、?:可选的"+86"(国际区号)
3、1:手机号开头是1
4、[3-9]:第二位是3-9之间的数字
5、 \d{9}:后面9位数字
6、$:字符串结束
10万+

被折叠的 条评论
为什么被折叠?



