学习正则表达式的基础知识:如何匹配模式、使用字符类、量词和分组来查找和验证文本。
步骤指南
了解 Regex 是什么
正则表达式(regex)是一种定义搜索模式的字符序列,用于查找、验证、提取或替换文本。几乎所有编程语言和许多文本编辑器都支持正则表达式。
匹配字面字符
最简单的正则表达式就是字面字符串。模式 `cat` 可以匹配 "concatenate" 和 "scat" 中的 "cat"。默认情况下,正则表达式区分大小写:`Cat` 不能匹配 "cat"。
使用字符类
`[abc]` 匹配 a、b 或 c 中的任意一个。`[a-z]` 匹配任意小写字母。`[0-9]` 匹配任意数字。`[^abc]` 匹配除 a、b、c 之外的任意字符。简写:`\d` = 数字,`\w` = 单词字符(字母/数字/_),`\s` = 空白字符。
使用量词
`*` = 零次或多次 | `+` = 一次或多次 | `?` = 零次或一次 | `{3}` = 恰好 3 次 | `{2,5}` = 2 到 5 次。示例:`\d{3}-\d{4}` 匹配 "555-1234" 这样的电话号码片段。量词后加 `?` 变为懒惰模式(尽可能少匹配)。
使用锚点和分组
`^` 锚定行首;`$` 锚定行尾。`(abc)` 创建捕获组。`(cat|dog)` 匹配 "cat" 或 "dog"。示例:`^\d{5}$` 恰好匹配 5 位 ZIP 邮政编码,不多不少。
使用免费工具
Regex 测试
常见问题
Q: 如何匹配字面点号或括号?
A: `.`、`*`、`+`、`?`、`(`、`)`、`[`、`]`、`{`、`}`、`^`、`$`、`|`、`\` 等特殊字符需要用反斜杠转义。使用 `\.` 匹配字面点号,`\(` 匹配字面括号。
Q: 贪婪匹配和懒惰匹配有什么区别?
A: 贪婪量词(默认)尽可能多地匹配。懒惰量词(添加 `?`)尽可能少地匹配。示例:对 "<b>bold</b>" 使用 `<.+>` 会匹配整个字符串;使用 `<.+?>` 只匹配 "<b>"。
Q: 在哪里可以测试我的正则表达式?
A: 使用我们的 Regex 测试工具,输入模式和测试文本,实时查看高亮显示的匹配结果,还可以查看捕获组和详细的匹配信息。