目录
1. 什么是正则表达式?
正则表达式(Regular Expression,简称 Regex) 是一种用于 匹配、搜索、替换 字符串的强大工具。它由一系列字符和元字符组成,用于定义特定的文本模式。
正则表达式最早由计算机科学家 Stephen Kleene 在 1950 年代提出,并广泛应用于 文本处理、数据验证、日志分析、爬虫开发 等领域。
2. 正则表达式的用途
正则表达式可以用于:
✅ 字符串匹配(如搜索关键字)
✅ 数据验证(如检查邮箱、手机号格式)
✅ 文本提取(如从 HTML 页面提取链接)
✅ 数据清理(如删除重复空格、格式化文本)
✅ 代码分析(如检查代码风格、解析日志文件)
3. 正则表达式的基本结构
正则表达式由 普通字符 和 元字符 组成:
1️⃣ 普通字符
普通字符就是 字母、数字、符号,匹配它们本身,例如:
hello
只能匹配"hello"
,无法匹配"Hello"
或"HELLO"
。123
只能匹配"123"
,无法匹配"0123"
。
2️⃣ 元字符(Metacharacters)
元字符具有特殊意义,可用于定义复杂的匹配规则,例如:
元字符 | 说明 | 示例 |
---|---|---|
. | 匹配 任意单个字符(换行符除外) | a.b 可匹配 "acb" 、"a0b" |
^ | 匹配 字符串开头 | ^Hello 仅匹配以 "Hello" 开头的文本 |
$ | 匹配 字符串结尾 | world$ 仅匹配以 "world" 结尾的文本 |
\d | 匹配 数字(0-9) | \d{3} 可匹配 "123" |
\w | 匹配 字母、数字、下划线 | \w+ 可匹配 "hello_123" |
\s | 匹配 空格(包括换行符、制表符) | Hello\sWorld 可匹配 "Hello World" |
4. 常见正则表达式示例
需求 | 正则表达式 | 示例匹配 |
---|---|---|
匹配邮箱 | ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ | user@example.com |
匹配手机号(中国) | ^1[3-9]\d{9}$ | 13812345678 |
匹配 IP 地址 | ^(?:\d{1,3}\.){3}\d{1,3}$ | 192.168.1.1 |
匹配日期(YYYY-MM-DD) | ^\d{4}-\d{2}-\d{2}$ | 2025-03-30 |
匹配纯数字 | ^\d+$ | 123456 |
匹配 HTML 标签 | ^<([a-zA-Z]+)>.*</\1>$ | <div>Hello</div> |
5. 参考资料
这篇文章提供了 正则表达式的基础知识,如果你需要更深入的讲解(如 高级匹配、贪婪模式、断言 等),可以告诉我!😊
发表回复