正则表达式测试工具 - 在线实时匹配调试

🔍

正则表达式

//
💡 输入正则表达式开始测试
📝

测试文本

🔄

查找替换

$&$1$`$'

常见问题

正则表达式中常用的标志(Flags)有哪些?

g(全局匹配):查找所有匹配项;i(忽略大小写):匹配时不区分大小写;m(多行模式):让 ^ 和 $ 匹配每行的开头和结尾;s(单行模式):让 . 匹配换行符;u(Unicode 模式):正确处理四字节的 UTF-16 字符。

什么是正则表达式的分组捕获?

分组捕获使用小括号 () 将正则表达式的一部分括起来,匹配成功后可以通过 $1、$2 等引用捕获的内容。例如正则 (\d{4})-(\d{2})-(\d{2}) 可以分别捕获年、月、日。

正则表达式的零宽断言是什么?

零宽断言用于匹配一个位置而非字符本身,包括:正向先行断言 (?=)、负向先行断言 (?!)、正向后行断言 (?<=)、负向后行断言 (?<!)。它们不消耗字符,仅用于判断某个位置前后是否满足条件。

正则表达式基础知识

什么是正则表达式?

正则表达式(Regular Expression,简称 Regex 或 RegExp)是一种用于匹配和处理文本的强大工具。它使用一种紧凑的、高度压缩的"脚本语言"来描述搜索模式,广泛应用于文本搜索、验证、替换等操作。正则表达式最早起源于 Unix 操作系统中的 Unix 工具(如 ed 编辑器、grep 命令),自 1950 年代由数学家 Stephen Kleene 提出形式化理论以来,已经成为计算机科学中最基础也是最重要的工具之一。如今,几乎所有主流编程语言(JavaScript、Python、Java、C# 等)、文本编辑器(VS Code、Sublime Text)、命令行工具(grep、sed、awk)都支持正则表达式。

常用正则表达式元字符速查

模式说明示例
.匹配除换行符外的任意单个字符a. 匹配 ab, a1
\d匹配任意数字(等价于 [0-9])\d{3} 匹配 123
\w匹配字母、数字或下划线\w+ 匹配 hello
\s匹配空白字符(空格、Tab、换行)\s+ 匹配多个空格
[abc]匹配方括号内的任一字符[aeiou] 匹配元音字母
[^abc]匹配不在方括号内的字符[^0-9] 匹配非数字
^匹配字符串开头^Hello 以 Hello 开头
$匹配字符串结尾world$ 以 world 结尾
* + ?量词:0 次或多次 / 1 次或多次 / 0 次或 1 次a* b+ c?
{n,m}量词:至少 n 次,最多 m 次\d{3,5} 3-5 位数字
(xyz)捕获组:将多个字符作为一个单元(abc){2} 匹配 abcabc
a|b交替:匹配 a 或 bcat|dog 匹配 cat 或 dog

使用建议和最佳实践

  • 尽量使用非捕获组 (?:...) 替代捕获组 (...),除非您需要引用捕获的内容,这样可以提高匹配性能
  • 对于复杂的正则表达式,建议使用注释模式/pattern/x)添加可读性,或在代码中添加详细注释
  • 避免使用贪婪匹配(如 .*),在可能的情况下使用非贪婪模式.*?)以防止过度匹配
  • 使用本工具的"匹配详情"面板查看每个分组的具体捕获内容,帮助调试复杂的正则表达式
  • JavaScript 中,可以使用 RegExp.prototype.test() 方法快速验证正则是否匹配
  • 定期使用本工具的"常用正则"库中的模板,避免重复编写常见的匹配模式
展开使用说明
更多推荐
查看更多
HTML 预览开发工具
YAML ↔ Properties开发工具
Cron 表达式开发工具
XPath 测试开发工具
JSONPath 测试开发工具
JSON 转 Java开发工具
JSON ↔ XML 互转开发工具
XML 格式化开发工具