1. 基本概念
- 作用:快速检索、匹配或替换符合特定规则的字符串。
- 应用场景:验证邮箱/电话、提取网页数据、批量替换文本等。
2. 基础语法
元字符
符号 | 说明 | 示例 |
---|---|---|
. |
匹配任意单个字符(除换行符) | a.c → “abc” |
^ |
匹配字符串开头 | ^Hello → 开头为”Hello” |
$ |
匹配字符串结尾 | world$ → 结尾为”world” |
\ |
转义特殊字符 | \. → 匹配点号. |
量词
符号 | 说明 | 示例 |
---|---|---|
* |
前一个字符出现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” |
字符类
表达式 | 说明 | 示例 |
---|---|---|
[abc] |
匹配a、b、c中的任意一个 | [aeiou] → 匹配元音字母 |
[a-z] |
匹配a到z之间的任意字符 | [0-9] → 数字 |
[^abc] |
匹配非a、b、c的字符 | [^0-9] → 非数字 |
预定义字符类
符号 | 等价表达式 | 说明 |
---|---|---|
\d |
[0-9] |
数字 |
\w |
[a-zA-Z0-9_] |
字母、数字、下划线 |
\s |
[ \t\n\r] |
空白符(空格、制表符等) |
3. 分组与捕获
- 分组:使用
()
将表达式分组,可应用量词或捕获内容。(ab)+ # 匹配 "ab", "abab", 等
- 捕获:提取匹配内容,如
(\d{3})-(\d{4})
捕获区号和号码。
4. 边界与选择
- 单词边界:
\b
(如\bcat\b
匹配独立的单词”cat”)。 - 逻辑或:
|
(如cat|dog
匹配”cat”或”dog”)。
5. 贪婪 vs 非贪婪
- 贪婪模式:默认尽可能多匹配(如
.*
匹配到行尾)。 - 非贪婪模式:量词后加
?
,尽可能少匹配(如.*?
)。
6. 常用示例
- 邮箱:
^[\w.-]+@[\w.-]+\.\w+$
- 手机号(简版):
^1[3-9]\d{9}$
- 日期(YYYY-MM-DD):
^\d{4}-\d{2}-\d{2}$
7. 工具推荐
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容