AI-TOL

正则表达式测试

测试支持 JS、Python、PHP、Java 的正则表达式。75+ 模板、匹配高亮、捕获组和 /pattern/flags 语法。免费在线正则测试器。

替换

常见问题

快速找到您关心的问题答案
什么是正则表达式测试器,它如何帮助开发人员?

正则表达式测试器是一个交互式工具,允许您实时测试和调试正则表达式。它通过以下方式大大加快模式开发:在您键入时即时显示匹配项并使用颜色编码高亮显示、显示捕获组及其内容、解释模式的每个部分的作用、支持多种正则表达式风格(JavaScript、Python、PHP、Java)、为无效语法提供错误消息、为常见模式提供预构建模板。我们的工具使用浏览器内置的RegExp引擎进行准确、特定语言的匹配。这意味着当您在JavaScript模式下测试时,您看到的是JavaScript会准确匹配的内容——不会有跨语言意外。实时反馈循环消除了繁琐的编写-编译-测试循环,让您可以在几秒钟而不是几分钟内迭代模式。

支持哪些编程语言和正则表达式风格?

我们的正则表达式测试器支持四种主要的正则表达式引擎,它们具有独特的语法差异:JavaScript (ES2024+)——使用/pattern/flags语法,支持前瞻/后顾、Unicode属性转义、命名捕获组。Python (re模块 3.11+)——支持大多数PCRE功能、详细模式带注释、条件模式、占有量词。PHP (PCRE2)——完整的Perl兼容功能集、递归模式、子例程、回调、回溯控制动词。Java (java.util.regex)——支持Unicode类别、规范等价性、字素簇、占有量词。使用下拉菜单在语言之间切换——界面会更新以显示特定语言的功能。重要:语法差异很重要——JavaScript中的\w匹配[A-Za-z0-9_],而在Python 3中它匹配Unicode单词字符,包括带重音的字母。始终在您将使用的语言中进行测试。

如何在正则表达式模式中使用标志和修饰符?

正则标志改变引擎解释模式的方式。可用标志因语言而异:g (global)——查找所有匹配项,而不仅仅是第一个(JavaScript、PHP、Java)。i (case-insensitive)——同等匹配大小写。m (multiline)——使^和$匹配行的开始/结束,而不仅仅是字符串边界。s (dotAll/single-line)——使.匹配换行符。u (Unicode)——JavaScript中的完整Unicode支持。x (verbose)——允许Python/PHP中的空格和注释。我们的工具为常见标志提供复选框——无需记住/pattern/gim等语法。单击标志可立即切换它们并查看结果更新。示例:使用i进行不区分大小写的电子邮件匹配,使用m逐行匹配日志文件,使用s跨多行匹配,使用g查找文本中的所有出现位置。某些语言组合标志:JavaScript中的/pattern/gim,PHP内联标志中的pattern(?i)。专业提示:从适合您用例的标志开始,如果匹配太多或太少,则进行调整。

什么是捕获组,如何使用它们?

捕获组允许您使用括号()提取匹配的特定部分。它们对于数据提取和转换至关重要。基本捕获组:(\d{3})捕获三个数字。作为$1或group[1]在替换中访问。命名捕获组:(?\d{4})捕获四个数字并将其命名为'year'。作为${year}或match.groups.year访问。非捕获组:(?:\d{3})在不捕获的情况下分组——当您不需要值时更快。我们的工具在专用面板中显示所有捕获组:组号、名称(如果有)、捕获的值、开始/结束位置。用例:从电话号码中提取区号、将日期解析为年/月/日组件、验证和重构URL、清理数据格式。示例:(?\d{3})-(?\d{3})-(?\d{4})捕获美国电话号码组件。在替换文本中访问${area}、${exchange}、${number}。最佳实践:对复杂模式使用命名组——它们是自我记录的,更易于维护。

什么是正则模板,什么时候应该使用它们?

正则模板是常见验证和提取任务的预构建、经过测试的模式。它们节省时间并防止重新发明经过良好测试的解决方案。我们的模板包括:电子邮件验证——符合RFC的模式,处理边缘情况,URL匹配——解析协议、域、路径、查询字符串,IP地址验证——IPv4和IPv6模式,电话号码提取——多种格式的灵活模式,日期/时间解析——ISO 8111、美国、国际格式,信用卡验证——带有格式检查的Luhn算法,HTML标签提取——平衡标签匹配,密码强度——复杂性要求。单击任何模板可立即加载,然后根据您的特定需求进行自定义。模板是起点,而不是僵化的解决方案——您可能需要为以下情况调整它们:特定国家格式(电话号码、邮政编码)、业务规则(密码策略、用户名约束)、遗留数据模式。每个模板都包含解释它匹配什么以及为什么的注释。专业提示:将模板用作学习工具——研究它们以了解高级正则技术,如环视、占有量词和原子组。

我可以保存、导出和共享我的正则表达式模式吗?

可以!我们的工具提供了多种保存和共享您的工作的方法:本地历史记录——模式在您工作时自动保存到浏览器的本地存储中,可从左侧的历史记录面板访问,跨会话持久化,无需帐户。复制到剪贴板——单击以各种格式复制带有标志的模式:JavaScript /pattern/flags、Python原始字符串r'pattern'、PHP /pattern/flags、Java "pattern"。通过URL共享——模式编码在URL哈希中,向同事发送链接以进行协作,为快速访问添加书签模式。导出选项—作为代码片段复制,准备好粘贴到您的项目中,下载为JSON以进行备份和版本控制。隐私说明:由于所有内容都在本地运行,除非您明确共享,否则您的模式永远不会离开您的浏览器。这使得我们的工具可以安全地用于专有业务逻辑、敏感数据模式、内部验证规则。专业工作流程:在我们的工具中开发和测试模式,然后自信地将最终版本复制到您的代码库中。

如何调试不能按预期工作的复杂正则表达式模式?

调试正则需要系统分析。我们的工具提供了几个调试功能:匹配解释——将鼠标悬停在模式的任何部分以查看它的作用,颜色编码的语法高亮显示将相关元素分组在一起。错误检测——无效语法显示红色下划线和特定错误消息,帮助您捕获未闭合的组、无效转义、放错位置的量词。测试用例面板—保存多个测试字符串和预期结果,快速验证边缘情况,确保您的模式处理所有场景。逐步匹配(即将推出)——观看引擎逐字符匹配,查看回溯操作,了解匹配失败或成功的原因。调试策略:1) 从简单开始——使用最小输入进行测试,验证基本匹配有效,2) 逐渐增加复杂性——逐个部分地构建模式,3) 使用测试用例—尝试边缘情况,如空字符串、特殊字符、边界值,4) 检查过度匹配—确保您没有过于广泛地匹配,5) 测试负面用例—确认不应该匹配的内容没有匹配,6) 仔细阅读错误消息—它们通常指向确切的问题。常见陷阱:忘记转义特殊字符(\. vs .),在意思是+时使用*(零个或一个或多个),在多行模式中混淆^和$锚点,依赖不同语言中的隐式单词边界。

什么是前瞻、后顾和其他高级正则功能?

高级正则功能可以实现超越简单模式的复杂匹配:前瞻 (?=pattern)—如果模式跟随则匹配,而不消耗它。示例:\w+(?=ing)匹配以'ing'结尾的单词,但从匹配中排除'ing'。负前瞻 (?!pattern)—如果模式不跟随则匹配。示例:\d+(?!\.\d)匹配后跟非小数的整数。后顾 (?<=pattern)—如果模式先前则匹配(某些引擎中宽度受限)。示例:(?<=\$)\d+匹配$符号后的数字。负后顾 (?group)—防止回溯以提高性能。示例:(?>\d+)如果没有数字跟随则立即失败,不回溯。占有量词 ++、*+、?+——像原子组一样,防止回溯。反向引用\1、\g——匹配先前捕获的文本。示例:(\w+)\s+\1匹配重复的单词。条件模式 (?(if)then|else)—根据组是否捕获进行分支。我们工具的语法参考通过示例解释了这些功能。用例:在不消耗字符的情况下验证密码要求、匹配带有转义引号的引号字符串、解析平衡对、在验证中实现业务规则。警告:对于复杂模式或大输入,环视可能会导致性能问题。谨慎使用它们并使用现实的数据量进行测试。始终考虑更简单的方法(多个正则、字符串解析)可能更可维护。

查看完整使用指南和教程

深入了解更多使用技巧和高级功能

使用场景

了解如何在您的日常工作流程中使用此工具

📝

文本处理与字符串操作

测试和验证用于文本数据搜索、提取和转换的正则表达式。

  • 使用灵活条件进行文本搜索的模式匹配
  • 提取特定数据,如日期、代码或标识符
  • 根据业务规则验证字符串格式
  • 使用捕获组进行搜索和替换以进行重构
  • 以编程方式解析CSV或固定宽度文本文件
  • 清理和标准化来自Web表单的用户输入

表单验证与数据清理

为用户输入数据的客户端和服务器端验证创建正则表达式模式。

  • 使用符合RFC的模式进行电子邮件地址验证
  • 国际格式的电话号码格式化
  • URL解析和验证以确保安全
  • 输入清理以防止XSS和注入攻击
  • 使用复杂性要求进行密码强度验证
  • 邮政编码和地址格式验证
📋

日志分析与调试

从服务器日志和应用程序跟踪中提取特定模式、错误和指标。

  • 匹配应用程序日志中的错误模式和堆栈跟踪
  • 按严重性级别或错误代码过滤日志
  • 提取IP地址、时间戳和用户ID
  • 解析用户代​​理字符串以识别浏览器和设备
  • 从监控日志中提取性能指标
  • 关联分布式系统中的相关日志条目
🌐

网络抓取与数据提取

构建正则表达式模式以从HTML、XML和文本文档中提取结构化数据。

  • 从网页中提取链接和图像URL
  • 解析HTML标签和属性(谨慎使用)
  • 从电子商务站点抓取产品价格和描述
  • 从文档头提取元数据
  • 从文本响应中解析类似JSON的结构
  • 在存储之前清理和标准化抓取的数据
💻

代码重构与迁移

在重构项目和语言迁移期间使用正则表达式查找和转换代码模式。

  • 在多个文件中重命名变量或函数
  • 更新导入语句和模块路径
  • 在编码约定之间转换(camelCase转换为snake_case)
  • 用新版本替换不推荐的API调用
  • 将幻数提取为命名常量
  • 标准化字符串引号样式和缩进
🔒

安全与合规

检测文本数据中的敏感信息模式并执行安全策略。

  • 检测日志中的信用卡号、SSN和PII
  • 在源代码中查找硬编码的密码和API密钥
  • 根据安全模式和允许列表验证输入
  • 扫描SQL注入和XSS攻击模式
  • 使用复杂性要求强制执行密码策略
  • 识别配置文件中的潜在安全漏洞

关于此工具

正则表达式很强但是写起来特别头疼。这个工具让你实时测试正则匹配——高亮匹配结果、看捕获组、调试为啥你的模式不工作。支持现代JS正则的所有特性(后行断言、命名组、Unicode那些),大部分在线工具都不支持这些。调试复杂模式的时候省了不少时间。

技术细节

用JavaScript的RegExp,支持ES2018+的特性。标准标志位(g, i, m, s, u, y)都有,还有后行断言、命名捕获组、Unicode属性转义这些新东西。匹配高亮显示准确位置,捕获组单独显示,语法错了会有有用的错误提示(而不是像某些工具那样直接失败不出声)。

🔒

隐私承诺

🔒 **隐私优先**:与基于服务器的工具不同,AI-TOL 在您的浏览器中本地处理所有内容 - 您的数据永远不会离开您的设备。没有上传,没有跟踪,完全私密。