1. 匹配单个字符
| 代码 |
功能说明 |
示例 |
匹配结果说明 |
. |
匹配任意一个字符(除了换行符 \n) |
a.c |
匹配 abc, a@c, a c,但不匹配 ac 或 abbc
|
[ ] |
匹配括号中列举的任意一个字符 |
[aeiou] |
匹配任意一个元音字母 |
|
|
[0-9A-F] |
匹配一个十六进制数字 |
\d |
匹配一个数字(0-9) |
\d{3} |
匹配三位数,如 123、999
|
\D |
匹配一个非数字 |
\D\d+ |
匹配以非数字开头后跟若干数字,如 A123、#456
|
\s |
匹配任意空白字符(空格、Tab、换行等) |
\w+\s\w+ |
匹配两个单词之间有空格的内容,如 hello world
|
\S |
匹配任意非空白字符 |
\S+ |
匹配一串连续的非空字符,常用于提取单词或URL |
\w |
匹配字母、数字、下划线、汉字 |
\w+ |
匹配用户名、变量名,如 username_123、张三
|
\W |
匹配非字母、非数字、非下划线、非汉字 |
\W+ |
匹配特殊字符,如 @, #, $, 中文! 中的 !
|
2. 匹配多个字符
| 代码 |
功能说明 |
示例 |
匹配结果说明 |
* |
匹配前一个字符出现 0次或多次(即可有可无) |
go*gle |
匹配 ggle, google, gooogle 等 |
|
|
ab*c |
匹配 ac, abc, abbbc 等 |
+ |
匹配前一个字符出现 1次或多次(至少一次) |
go+gle |
匹配 google, gooogle,但不匹配 ggle
|
|
|
a+b |
匹配 ab, aab, aaab,但不匹配 b
|
? |
匹配前一个字符出现 0次或1次(要么没有,要么一次) |
colou?r |
匹配 color 或 colour,但不能匹配 colooor
|
{m} |
匹配前一个字符出现 恰好 m 次
|
\d{3} |
匹配三位数字,如 123,但不匹配 12 或 1234
|
{m,n} |
匹配前一个字符出现 从 m 到 n 次
|
\d{2,5} |
可以匹配 12, 123, 12345,但不匹配 1 或 123456
|
3.匹配开头和结尾
| 代码 |
功能 |
| ^ |
匹配字符串开头 |
| $ |
匹配字符串结尾 |
4.匹配分组
| 代码 |
功能 |
| | |
匹配左右任意一个表达式 |
| (ab) |
将括号中字符作为一个分组 |
\num |
引用分组num匹配到的字符串 |
(?P<name>) |
分组起别名 |
| (?P=name) |
引用别名为name分组匹配到的字符串 |
5.贪婪与非贪婪
| 正则 |
待匹配字符 |
匹配结果 |
说明 |
| <.*> |
<script>...<script>
|
<script>...<script>
|
默认为贪婪匹配模式,会匹配尽量长的字符串 |
| <.*?> |
r'\d' |
<script><script> |
加上?为将贪婪匹配模式转为非贪婪匹配模式,会匹配尽量短的字符串 |
加上?为将贪婪匹配模式转为非贪婪匹配模式,会匹配尽量短的字符串
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
1. 匹配手机号(中国大陆)
^1[3-9]\d{9}$
- 示例:
13812345678
- 说明:
-
^1 表示以 1 开头
-
[3-9] 表示第二位是 3~9 的数字
-
\d{9} 表示后面还有 9 个数字
2. 匹配邮箱地址
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
- 示例:
test.user@example.com
- 说明:
-
\w+ 匹配邮箱用户名部分
-
@ 和 . 是必须的符号
- 支持带子域名的邮箱格式
3. 提取网页中的超链接
<a\s+href=["'](.*?)["']>
4.提取日期格式(YYYY-MM-DD)
\d{4}-\d{2}-\d{2}
- 示例:
2025-06-02
- 扩展:
- 可加边界判断:
\b\d{4}-\d{2}-\d{2}\b
- 支持斜杠:
\d{4}[-/]\d{2}[-/]\d{2}
5.校验密码强度(含大小写、数字、至少8位)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$
- 示例:
Password123
- 说明:
-
(?=.*[a-z]) 表示至少有一个小写字母
-
(?=.*[A-Z]) 表示至少有一个大写字母
-
(?=.*\d) 表示至少有一个数字
-
.{8,} 表示总长度至少 8 位
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。