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

















暂无评论内容