正则表达式解析

125 浏览
10 试用
0 购买
Aug 27, 2025更新

逐步解析正则表达式并说明其匹配规则。

示例1

好的,我们一起来逐步拆解正则表达式 `^\d{11}$`,并详细解释每个组成部分。

---

### 1. `^`
**含义:**  
- 在正则表达式中,`^` 表示匹配字符串的开头。
- 它确保该正则表达式从字符串的第一个字符开始进行匹配。

**作用:**  
- 只有从字符串的开头开始符合条件的内容才会被匹配。
- 如果字符串在开头有任何其他字符(非目标内容),则正则失败。

---

### 2. `\d`
**含义:**  
- `\d` 是一个匹配数字的特殊字符类,相当于 `[0-9]`。
- 它匹配单个十进制数字(即 0 到 9)。

**作用:**  
- `\d` 表示该位置只能是一个数字。

---

### 3. `{11}`
**含义:**  
- `{11}` 是一个量词,表示前面的内容(在这里是 `\d`)必须精确出现 **11 次**。

**作用:**  
- `\d{11}` 表示连续 11 个数字,不能多也不能少。

---

### 4. `$`
**含义:**  
- 在正则表达式中,`$` 表示匹配字符串的结尾。
- 它确保匹配必须到达字符串的末尾。

**作用:**  
- 只有当整个字符串完全符合正则表达式的要求,并且字符串没有多余字符时,才会匹配成功。

---

### 组合分析:`^\d{11}$`
将以上部分组合起来,完整表达式的含义是:

1. `^` 确保匹配从字符串的开头开始。
2. `\d{11}` 要求紧接着有且仅有 11 个连续的数字。
3. `$` 确保匹配到字符串的末尾。

因此,这个正则表达式会**严格匹配只有 11 个连续数字的字符串**,并且不能多也不能少,也不能包含任何其他字符。

---

### 匹配示例
能够匹配的字符串示例:
- `"12345678901"`(正好是 11 个数字)

---

### 不匹配的示例
无法匹配的字符串示例:
1. `"1234567890"`(只有 10 个数字,少了一个数字)
2. `"123456789012"`(有 12 个数字,多了一个数字)
3. `"1234567890a"`(最后多了一个非数字字符 `a`)
4. `"a12345678901"`(开头多了一个非数字字符 `a`)

---

### 总结
正则表达式 `^\d{11}$` 的作用是:  
**严格匹配只有 11 位数字且没有其他字符的字符串。**

示例2

好的,我们来逐步拆解 `^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$` 这个正则表达式,并详细说明它的功能以及能够匹配的字符串类型。

---

### **整体功能**
该正则表达式用于匹配 **日期和时间** 的字符串,格式如:`YYYY-MM-DD HH:MM:SS`,即“年-月-日 小时:分钟:秒”的形式。例如:`2023-10-15 12:30:45`。

它要求字符串完全符合这种日期时间格式,且必须从字符串开头 (`^`) 到字符串结束 (`$`) 精确匹配。

---

### **逐组件拆解**

1. **`^`**
   - **含义**:匹配字符串的起始位置。
   - **作用**:确保匹配的内容必须从字符串的开头开始。即,该正则表达式不允许字符串前有任何多余字符。

---

2. **`\d{4}`**
   - **含义**:匹配 **四位数字**。
     - `\d` 表示一个数字字符(`0-9`)。
     - `{4}` 表示前面的模式必须重复 4 次。
   - **作用**:匹配年份部分,例如 `2023`。

---

3. **`-`**
   - **含义**:匹配一个减号字符 `-`。
   - **作用**:用作年份与月份之间的分隔符。

---

4. **`\d{2}`**
   - **含义**:匹配 **两位数字**。
     - `\d` 是数字字符,`{2}` 表示重复 2 次。
   - **作用**:
     - 第一个 `\d{2}`:用于匹配月份部分(`01` 至 `12`,尽管稍后我们不对范围做验证)。
     - 第二个 `\d{2}`:用于匹配日期部分(`01` 至 `31`,同样不验证范围)。

---

5. **`-`**
   - **含义**:匹配第二个减号字符 `-`。
   - **作用**:用作月份与日期之间的分隔符。

---

6. **空格(` `)**
   - **含义**:匹配一个空格字符。
   - **作用**:用作日期部分和时间部分的分隔符。

---

7. **`\d{2}`**
   - **含义**:再次匹配两位数字。
     - 第一个 `\d{2}` 用于匹配小时部分。
   - **作用**:表示时间中的“小时”,为 24 小时制(`00` 至 `23`,虽然此处也不验证范围)。

---

8. **`:`**
   - **含义**:匹配一个冒号字符 `:`。
   - **作用**:作为小时与分钟之间的分隔符。

---

9. **`\d{2}`**
   - **含义**:再次匹配两位数字。
     - 第二个 `\d{2}` 用于匹配分钟部分。
   - **作用**:表示时间中的“分钟”,范围为 `00` 至 `59`(同样不验证范围)。

---

10. **`:`**
    - **含义**:匹配第二个冒号字符 `:`。
    - **作用**:作为分钟与秒数之间的分隔符。

---

11. **`\d{2}`**
    - **含义**:再次匹配两位数字。
      - 第三个 `\d{2}` 用于匹配秒数部分。
    - **作用**:表示时间中的“秒数”,范围为 `00` 至 `59`(依然不验证范围)。

---

12. **`$`**
    - **含义**:匹配字符串的结尾位置。
    - **作用**:确保字符串必须以正则表达式的模式结束,不能有多余的字符。

---

### **总结匹配的字符串结构**

该正则表达式可以完整匹配如下格式的字符串:
- 日期的格式为 `YYYY-MM-DD`:
  - `YYYY` 是精确的 4 位数字,表示年份。
  - `MM` 是精确的 2 位数字,表示月份。
  - `DD` 是精确的 2 位数字,表示日期。
- 时间的格式为 `HH:MM:SS`:
  - `HH` 是 2 位数字,表示小时(24 小时制)。
  - `MM` 是 2 位数字,表示分钟。
  - `SS` 是 2 位数字,表示秒数。
  
**完整匹配样例:**
```
2023-01-01 00:00:00
1999-12-31 23:59:59
2023-11-15 18:45:20
```

---

### **不能匹配哪些情况?**
该正则表达式对格式完整性要求非常严格,以下情况将无法匹配:
1. **多余字符**:如 `2023-10-15 12:30:45abc`(因有多余的 `abc`)。
2. **格式错误**:如 `2023/10/15 12:30:45`(因分隔符错误)。
3. **长度不足**:如 `2023-10-15 12:30`(因缺少秒数部分 `:SS`)。
4. **缺乏完整性**:如 `2023-10 12:30:45`(因缺少日期部分)。

---

### **注意事项**
此正则表达式只验证字符串的格式,不对日期或时间的实际合理性进行校验。例如:
- 它能匹配 `2023-13-40 25:61:61`,但这样的值并不是有效的日期/时间。
- 若需校验日期/时间的有效性,还需要配合逻辑上的验证。

希望以上解释清楚完整!如有疑问,可进一步提问。

示例3

好的!我们将逐步拆解和分析正则表达式 `^[\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,}$`,并详细说明每个部分的意义,以及整个表达式能够匹配哪些字符串。

---

### 1. `^`
**作用:**
- `^` 是正则表达式的锚点,表示匹配的字符串必须从行的开头开始。
- 如果字符串有多行(或开启了多行模式),`^` 匹配每一行的开头。

---

### 2. `[\w.%+-]+`
**逐步拆解:**
- **`[\w.%+-]`**:这是一个字符集合,表示可以匹配以下字符:
  - **`\w`**: 匹配任意“字母、数字或下划线” (`[a-zA-Z0-9_]`)。
  - **`.`**: 句点,匹配句号字符(`.`)。
  - **`%`**: 百分号字符。
  - **`+`**: 加号字符。
  - **`-`**: 连字符(减号)。

  所以整个集合 `[\w.%+-]` 表示能够匹配一个字母、数字、下划线,或特殊字符(`.`、`%`、`+`、`-`)。

- **`+`**:量词,表示前面的字符集合必须出现 **一次或多次**。即,至少有一个或多个字符来自 `[\w.%+-]`。

**匹配内容:**
- 可以匹配一个类似用户名的字符串,例如:
  - `abc`
  - `test.user`
  - `name123+test`
  - `user.name%50`
  - `a-b_c`

---

### 3. `@`
**作用:**
- 匹配符号 `@`,表示电子邮件地址中的必需部分。毫无疑问,这里它作为分隔用户名和域名的符号。

---

### 4. `[\w.-]+`
**逐步拆解:**
- **`[\w.-]`**:这是另一个字符集合,能够匹配以下字符:
  - **`\w`**: 任意字母、数字或下划线。
  - **`.`**: 句号字符。
  - **`-`**: 连字符(减号)。

- **`+`**:量词,表示前面的字符集合必须出现 **一次或多次**。即至少有一个字符,且这些字符只能是字母、数字、`_`、`.` 和 `-`。

**匹配内容:**
- 这一部分通常匹配域名的一部分。比如:
  - `domain`
  - `sub-domain`
  - `example.site`

---

### 5. `\.`
**作用:**
- 强制匹配一个 **句点(`.`)**。这里的反斜杠 `\` 是转义符,因为在正则表达式中,`.` 是一个特殊字符(表示“任意单字符”),为了匹配字面意义上的句点需要转义。

---

### 6. `[a-zA-Z]{2,}`
**逐步拆解:**
- **`[a-zA-Z]`**:匹配任意字母(包括大小写),即小写 `a-z` 和大写 `A-Z`。
- **`{2,}`**:这是一个量词,表示前面的字符(即字母)至少出现 **2 次**,没有上限。也就是说,这部分要求必须是一个由至少两位字母组成的字符串。

**匹配内容:**
- 常用于匹配域名的顶级域(TLD),例如:
  - `com`、`net`、`org`(实际 TLD 长度大于等于 2 即可)。
  - `uk`、`io`、`edu`。

---

### 7. `$`
**作用:**
- `$` 是正则表达式的另一种锚点,表示匹配的字符串必须在行的末尾结束。
- 如果结合 `^`,整个表达式变成了从行头到行尾全匹配。

---

### 综合解释
- **完整表达式:**
  ```
  ^[\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,}$
  ```
  这整个表达式的主要作用是用来匹配电子邮件地址的一般格式,具体规则如下:
  1. 字符串必须从行的开头使用一个由字母、数字、下划线以及 `.`、`%`、`+`、`-` 组成的用户名部分。
  2. 后接符号 `@`。
  3. 后接域名部分,域名允许包含字母、数字、下划线、句点与连字符。
  4. 再后面必须有一个句点 `.`。
  5. 最后是由 2 个或更多字母组成的顶级域部分(通常指 TLD,如 `com`、`org`、`net` 等)。
  6. 整个字符串必须一致满足这些条件且完整匹配。

---

### 可以匹配的示例
1. `user@example.com`
2. `test.user+123@sub-domain.org`
3. `name_123%value@domain.co.uk`

---

### 无法匹配的示例
1. `userexample.com` (缺少 `@`)
2. `user@domain` (缺少 TLD 部分)
3. `user@@domain.com` (包含额外的 `@`)
4. `user@domain.a` (TLD 长度不足 2 个字符)

适用用户

编程初学者

借助提示词学习正则表达式的工作原理和具体用法,快速掌握文本匹配和处理技巧,完成基础编程任务

数据工程师

用于高效解析日志文件、清洗数据或验证输入,轻松理解复杂正则规则,解决数据处理中的瓶颈

网站开发人员

生成用于验证用户输入的正则表达式,提高表单准确性和安全性,优化用户体验

教育培训工作者

设计正则表达式教学内容,将复杂概念转化为简单直观的知识点,提升课程效果

非技术用户

无需编程经验也能通过解析工具理解和调整正则表达式,应用于文本规则设定、数据筛选等工作场景

解决的问题

帮助用户逐步解析复杂的正则表达式,并通过清晰的讲解降低其理解难度,从而使用户能够更有效地掌握正则表达式的使用场景及匹配规则。

特征总结

逐步解析正则表达式,帮助用户清晰了解每一个组件的功能与作用
将复杂的正则语法简单化,轻松掌握匹配规则,高效完成任务
为每一部分提供详细说明,快速理解不同结构的匹配逻辑
精准展示文本匹配场景,为用户明确哪些字符串可以被匹配
提升正则表达式学习效率,让初学者也能迅速上手应用
支持多领域应用场景,从数据处理到文本校验均可轻松应对
解决技术门槛问题,让非技术人员也能轻松生成并使用正则表达式
直观呈现正则式的作用,助力用户优化代码及文本匹配效率

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

10 积分
平台提供免费试用机制,
确保效果符合预期,再付费购买!

您购买后可以获得什么

获得完整提示词模板
- 共 56 tokens
- 1 个可调节参数
{ 正则表达式 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59
摄影
免费 原价:20 限时
试用