正则表达式(Regex)入门指南

开发者

学习正则表达式的基础知识:如何匹配模式、使用字符类、量词和分组来查找和验证文本。

步骤指南

1

了解 Regex 是什么

正则表达式(regex)是一种定义搜索模式的字符序列,用于查找、验证、提取或替换文本。几乎所有编程语言和许多文本编辑器都支持正则表达式。

2

匹配字面字符

最简单的正则表达式就是字面字符串。模式 `cat` 可以匹配 "concatenate" 和 "scat" 中的 "cat"。默认情况下,正则表达式区分大小写:`Cat` 不能匹配 "cat"。

3

使用字符类

`[abc]` 匹配 a、b 或 c 中的任意一个。`[a-z]` 匹配任意小写字母。`[0-9]` 匹配任意数字。`[^abc]` 匹配除 a、b、c 之外的任意字符。简写:`\d` = 数字,`\w` = 单词字符(字母/数字/_),`\s` = 空白字符。

4

使用量词

`*` = 零次或多次 | `+` = 一次或多次 | `?` = 零次或一次 | `{3}` = 恰好 3 次 | `{2,5}` = 2 到 5 次。示例:`\d{3}-\d{4}` 匹配 "555-1234" 这样的电话号码片段。量词后加 `?` 变为懒惰模式(尽可能少匹配)。

5

使用锚点和分组

`^` 锚定行首;`$` 锚定行尾。`(abc)` 创建捕获组。`(cat|dog)` 匹配 "cat" 或 "dog"。示例:`^\d{5}$` 恰好匹配 5 位 ZIP 邮政编码,不多不少。

使用免费工具

Regex 测试

常见问题

Q: 如何匹配字面点号或括号?

A: `.`、`*`、`+`、`?`、`(`、`)`、`[`、`]`、`{`、`}`、`^`、`$`、`|`、`\` 等特殊字符需要用反斜杠转义。使用 `\.` 匹配字面点号,`\(` 匹配字面括号。

Q: 贪婪匹配和懒惰匹配有什么区别?

A: 贪婪量词(默认)尽可能多地匹配。懒惰量词(添加 `?`)尽可能少地匹配。示例:对 "<b>bold</b>" 使用 `<.+>` 会匹配整个字符串;使用 `<.+?>` 只匹配 "<b>"。

Q: 在哪里可以测试我的正则表达式?

A: 使用我们的 Regex 测试工具,输入模式和测试文本,实时查看高亮显示的匹配结果,还可以查看捕获组和详细的匹配信息。

相关指南