正则表达式测试工具

正则匹配,正则替换,捕获分组,实时高亮,常用正则速查,免费在线正则工具,本地处理保护隐私

返回首页 使用工具

什么是正则表达式测试工具?

正则表达式测试工具是一款专业的在线正则表达式处理工具,专为需要编写和测试正则表达式的用户设计。正则表达式是一种强大的文本匹配模式,广泛应用于数据验证、文本搜索、日志分析等场景。然而,正则表达式语法复杂,编写和调试都需要反复测试。这款工具可以帮助您快速、准确地测试和调试正则表达式。

工具提供三大核心功能:正则匹配测试、正则替换和常用正则速查。匹配测试功能可以实时显示正则表达式在文本中的匹配结果,支持捕获分组显示,帮助您理解表达式效果。替换功能可以使用正则表达式进行文本替换,支持分组引用,方便批量处理。速查功能提供常用正则表达式示例,如邮箱、电话、身份证等,方便快速使用。所有处理均在浏览器本地完成,您的数据不会上传到任何服务器。

如何使用?

第一步:输入正则表达式

在正则表达式输入框中输入要测试的表达式。支持标准正则语法,包括字符类、量词、分组、锚点等。可以在表达式前后添加修饰符,如/g/i/m等,控制匹配行为。工具会自动验证表达式语法,显示是否有效。

第二步:输入测试文本

在测试文本区域输入要匹配的文本内容。文本可以是任意长度,支持多行文本。工具会实时显示匹配结果,匹配的部分会高亮显示,便于查看。

第三步:查看匹配结果

匹配结果会实时显示,包括匹配数量、匹配位置、捕获分组内容等。每个匹配项会高亮显示,您可以清晰地看到表达式在文本中的匹配效果。分组内容会单独显示,帮助您理解分组捕获。

第四步:使用替换功能

切换到替换标签页,输入替换文本,工具会显示替换后的结果。支持分组引用,可以使用$1、$2等引用捕获分组内容。替换结果可以一键复制,方便使用。

正则表达式语法参考

基础字符匹配

  • . - 匹配除换行符外的任意单个字符
  • \d - 匹配任意数字字符(0-9)
  • \D - 匹配任意非数字字符
  • \w - 匹配任意字母、数字、下划线(a-z, A-Z, 0-9, _)
  • \W - 匹配任意非单词字符
  • \s - 匹配空白字符(空格、制表符、换行符)
  • \S - 匹配非空白字符
  • [abc] - 匹配方括号中的任意单个字符
  • [^abc] - 匹配不在方括号中的任意字符
  • [a-z] - 匹配指定范围内的任意字符

特殊字符

  • ^ - 匹配字符串或行的开始位置
  • $ - 匹配字符串或行的结束位置
  • \b - 匹配单词边界位置
  • \B - 匹配非单词边界位置
  • | - 逻辑或,匹配左边或右边的表达式

量词(重复次数)

  • * - 匹配前面的元素0次或多次(贪婪)
  • + - 匹配前面的元素1次或多次(贪婪)
  • ? - 匹配前面的元素0次或1次(可选)
  • {n} - 匹配前面的元素恰好n次
  • {n,} - 匹配前面的元素至少n次
  • {n,m} - 匹配前面的元素n到m次
  • *? - 非贪婪匹配,匹配尽可能少(懒惰模式)
  • +? - 非贪婪匹配,匹配1次或多次但尽可能少
  • ?? - 非贪婪匹配,匹配0次或1次但优先0次

分组与引用

  • (abc) - 捕获分组,匹配并记住分组内容
  • (?:abc) - 非捕获分组,仅分组但不记住
  • (?<name>abc) - 命名分组,为分组指定名称
  • \1 - 反向引用,引用第一个捕获分组
  • (a|b) - 匹配a或b中的任意一个

常用正则示例

  • 邮箱地址:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • 手机号码(中国):1[3-9]\d{9}
  • 身份证号(中国):\d{17}[\dXx]
  • URL地址:https?://[\w.-]+(?:/[\w.-]*)*/?
  • IP地址:(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)
  • 日期格式:\d{4}-\d{2}-\d{2}
  • 时间格式:([01]?\d|2[0-3]):[0-5]\d
  • HTML标签:<[\w]+[^>]*>.*?</[\w]+>
  • 中文字符:[\u4e00-\u9fa5]
  • 空白行:^\s*$

修饰符说明

  • g - 全局匹配,找到所有匹配而非仅第一个
  • i - 忽略大小写匹配
  • m - 多行模式,^和$匹配每行的开始和结束
  • s - 单行模式,使.匹配包括换行符的所有字符
  • u - Unicode模式,启用完整的Unicode支持

适用场景与人群

程序员:编写和调试正则表达式,处理数据验证和文本搜索。

数据分析师:分析日志文件,提取关键信息,进行数据清洗。

测试工程师:验证输入格式,测试数据边界,确保系统稳定。

学生:学习正则表达式语法,理解匹配规则,完成作业。

普通用户:查找和替换文本,批量处理数据,提高效率。

特点与优势

本地处理,保护隐私 实时匹配 高亮显示 捕获分组 正则替换 常用正则速查 语法验证 完全免费

工具采用纯前端技术实现,所有正则处理都在您的浏览器中完成,数据不会上传到任何服务器。这意味着您的敏感数据始终处于您的控制之下,特别适合处理包含商业机密的数据。同时,工具提供实时匹配显示,输入即刻看到结果,大大提高调试效率。

注意事项:

  • 正则表达式语法复杂,建议先使用简单表达式测试
  • 修饰符影响匹配行为,请根据需求选择/g/i/m等
  • 复杂表达式可能影响性能,请避免过度复杂的表达式
  • 捕获分组数量有限,过多分组可能影响显示
  • 替换功能使用分组引用,格式为$1、$2等
  • 常用正则仅供参考,实际使用请根据需求调整

常见问题与解答

问:正则表达式中的修饰符有什么作用?

答:修饰符改变正则表达式的匹配行为:g(global)全局匹配,查找所有匹配而非仅第一个;i(ignore case)忽略大小写,匹配时不区分大小写;m(multiline)多行模式,使^和$匹配每行的开始和结束而非整个字符串;s(dotAll)单行模式,使.匹配包括换行符在内的所有字符。本工具支持在表达式中添加这些修饰符,例如/pattern/gi表示全局且忽略大小写匹配。

问:捕获分组和非捕获分组有什么区别?

答:捕获分组使用小括号(...),匹配的内容会被保存,可以在替换时通过$1、$2等引用,或在匹配结果中查看分组内容。非捕获分组使用(?:...),匹配但不保存内容,不占用分组编号,适合仅需要分组逻辑但不需要引用的场景。非捕获分组性能略优,建议在不需要引用时使用非捕获分组。

问:如何理解正则表达式中的贪婪和懒惰匹配?

答:贪婪匹配(默认行为)尽可能匹配更多字符,例如.*会匹配到最后一个可能的字符。懒惰匹配(在量词后加?)尽可能匹配更少字符,例如.*?会在匹配到第一个可能字符时停止。例如,对字符串"abracadabra",正则/a.*a/贪婪匹配"abracadabra",而/a.*?a/懒惰匹配"abra"。根据需求选择合适的匹配模式。

问:正则替换中的$1、$2是什么意思?

答:$1、$2等是对捕获分组的引用,称为反向引用。$1引用第一个捕获分组的内容,$2引用第二个,以此类推。例如,使用正则/(\w+)@(\w+)/匹配"hello@world",替换文本"$2@$1"会将结果变为"world@hello",实现了分组内容的交换。本工具的替换功能支持所有反向引用语法。

问:为什么我的正则表达式匹配不到结果?

答:常见原因包括:表达式语法错误(未闭合的括号、错误的量词位置等);缺少必要的修饰符(如忘记添加g导致只匹配第一个);字符转义问题(特殊字符未转义);匹配逻辑错误(范围定义错误、逻辑组合错误)。建议先在本工具中输入简单示例测试,逐步构建复杂表达式,使用工具的实时匹配显示功能验证每一步。

问:常用正则表达式模板如何使用?

答:本工具提供的常用正则模板(如邮箱、电话、身份证等)经过验证,可以直接使用。但实际场景可能需要调整:例如,邮箱正则可能不符合您系统的特定规则(如要求特定域名),电话正则可能不覆盖您国家的号码格式。建议基于模板修改,添加您系统的特定规则。修改后在本工具中测试,确保匹配您的实际数据。