正则表达式是一种强大的文本处理工具,用于描述字符串的匹配模式。其核心是通过特定语法规则,实现对文本的搜索、替换、提取等操作。
基本概念
-
模式匹配
如同"文本模具",通过定义规则(如电话号码格式、邮箱地址结构)匹配目标字符串。
示例 :\d{3}-\d{4}匹配123-4567这类数字组合。 -
常见应用场景
- 数据清洗(提取日志中的IP地址)
- 表单验证(邮箱格式
^\w+@\w+\.\w+$) - 批量文本替换(代码中的变量重命名)
核心元字符
| 符号 | 名称 | 作用 | 示例 |
|---|---|---|---|
. |
通配符 | 匹配任意单个字符 | a.c → abc,axc |
* |
星号量词 | 前元素出现0次或多次 | ab*c → ac,abbbc |
+ |
加号量词 | 前元素出现1次或多次 | ab+c → abc,abbc |
? |
问号量词 | 前元素出现0次或1次 | colou?r → color,colour |
{} |
区间量词 | 指定前元素出现次数 | a{2,4} → aa,aaa |
贪婪模式警示 :
.*会匹配尽可能长的字符串,如<div>.*</div>可能跨标签匹配。
字符组与定位
-
字符组
[...][aeiou]匹配任意元音字母[0-9A-Z]匹配数字或大写字母- 排除模式:
[^a-z]匹配非小写字母字符
-
定位符
^行首:^Hello匹配行首的"Hello"$行尾:end$匹配行尾的"end"\b单词边界:\bcat\b匹配独立单词"cat"
正则表达式 = 规则 + 位置
- 规则 :通过元字符组合定义匹配内容(如
\d+匹配数字序列) - 位置 :用定位符约束匹配发生的位置(如
^[A-Z]匹配首字母大写的行)
掌握这两部分,即可应对大多数文本处理需求。建议从简单模式开始练习,逐步探索分组捕获、非贪婪匹配等进阶功能。