实时测试正则表达式
正则表达式功能强大,但出了名的难以阅读。这款正则表达式测试工具可以在您输入时,实时准确地显示模式的效果:每个匹配项都会在文本中高亮显示、计数,并列出其位置和捕获组。替换预览功能可以展示查找和替换的结果,方便您在代码中实际应用。所有操作都在您的浏览器本地运行,并通过后台工作线程执行,以防止失控的模式导致页面卡死。
功能特性
- 实时高亮 显示测试字符串中的所有匹配项。
- 标志开关,可切换
g、i、m、s和u标志,并显示完整的/pattern/flags字面量。 - 匹配表格,包含索引、编号捕获组和命名捕获组。
- 替换预览,支持
$1、$<name>、$&等替换模式。 - 清晰的错误提示,用于指示无效语法,并设有一秒钟的安全超时,以防止灾难性回溯。
实际用途
验证输入。 在将邮政编码、产品代码或用户名的验证模式添加到表单之前,先用一系列有效和无效的样本来构建和测试它们。
提取数据。 从日志和文档中提取电子邮件地址、URL、日期或 ID。通过捕获组,您可以将每个匹配项拆分为多个部分,例如用户名和域名。
查找和替换。 将日期格式从 MM/DD/YYYY 更改为 YYYY-MM-DD、重命名变量或清理导出的数据。在这里预览替换结果,然后在您的编辑器或脚本中使用相同的模式。
学习正则表达式。 尝试使用量词、字符类和锚点,并立即查看效果。
快速参考
| 语法 | 含义 |
|---|---|
. |
匹配除换行符以外的任意字符 (使用 s 标志时可匹配任意字符) |
\d \w \s |
数字、单词字符、空白字符 |
[abc] [^abc] |
匹配所列字符之一 / 匹配非所列字符 |
* + ? |
0 次或多次、1 次或多次、0 次或 1 次 |
{2,5} |
2 到 5 次 |
^ $ |
文本的开头和结尾 (使用 m 标志时为每行的开头和结尾) |
(…) (?<name>…) |
捕获组、命名捕获组 |
(?:…) |
非捕获组 |
(?=…) (?!…) |
正向先行断言、负向先行断言 |
\b |
单词边界 |
量词默认是贪婪的;添加 ? (如 .*?) 可使其变为懒惰模式。之后若要清理列表,可以试试 删除重复行 工具,或使用 文本差异比对 工具来比较前后的变化。