返回仪表板

正则表达式测试器和调试器

通过视觉突出显示进行实时正则表达式测试。

/ /
g

Regex Tester — 实时测试和调试正则表达式

正则表达式 (regex) 是开发人员工具库中最强大的工具之一,也是最神秘的工具之一。一个精心设计的正则表达式可以替代 50 行字符串解析代码。我们的实时测试器可让您构建、测试和理解模式,而无需 IDE 的编辑-保存-运行周期。

正则表达式语法快速参考

图案 火柴 例子
\\\\d任意数字 0–9\\\\d{4}比赛 2024
\\\\w单词字符(字母、数字、_)\\\\w+匹配“hello_world”
^ / $字符串的开头/结尾^\\\\d{5}$仅匹配 5 位邮政编码
[...]集合中的任意字符[艾欧]匹配任何元音
(?:...)非捕获组不保存捕获组的组
(?=...)积极的前瞻\\\\w+(?=\\\\.com)匹配子域

5 个值得添加书签的现实世界正则表达式模式

  1. 电子邮件验证: /^[\\\\w.-]+@[\\\\w.-]+\\\\.[a-z]{2,}$/i
  2. 美国电话号码: /^(\\\\+1)?[\\\\s.-]?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$/
  3. 网址提取: /https?:\\\\/\\\\/[^\\\\s"']+/g
  4. 强密码检查: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$/
  5. 删除多余的空格: /\\\\s+/g替换为单个空格

常见问题解答

g、i、m 标志有什么作用?

(全局):查找所有匹配项,而不仅仅是第一个匹配项。: 不区分大小写。(多行): ^ 和 $ 匹配行边界而不是字符串边界。

为什么我的正则表达式在这里可以工作,但在 Python 中却不行?

该测试器使用 JavaScript 的正则表达式引擎。蟒蛇的关于模块有细微的语法差异——值得注意的是,Python 使用(?P<名称>...)对于命名组,而 JavaScript 使用(?<名称>...).

是什么导致灾难性的回溯?

图案如(一+)+应用于长的不匹配字符串会导致指数时间复杂度。在支持它们的引擎中使用原子组或所有格量词,或者重构模式以避免嵌套重复。