正则测试
正则表达式测试
常用正则表达式
手机号:1[3-9]\d{9}邮箱:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}URL:https?://[^\s]+IP地址:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
中文:[\u4e00-\u9fa5]+日期:\d{4}-\d{2}-\d{2}身份证:\d{17}[\dXx]空白行:^\s*$
工具简介
正则表达式在线测试工具支持 PCRE/JS/Java/Python 四种主流正则引擎,提供实时匹配高亮、捕获组提取、匹配位置定位、替换预览等功能。支持 flags 设置(i/g/m/s/u/y 等)、转义辅助输入、常用正则模板(邮箱/IP/URL/手机号/身份证/日期)一键插入。调试复杂正则时可以分步查看匹配结果,适合写爬虫提取规则、表单校验、日志清洗等场景。
使用步骤
1
输入正则和测试文本
在「正则」框输入 pattern,选择引擎(PCRE/JS/Java/Python),在「测试文本」框粘贴待匹配内容。可点击「常用模板」一键插入邮箱/IP 等模板。
2
查看匹配结果
工具实时高亮所有匹配位置,右侧显示每个匹配的索引、长度、捕获组内容。语法错误时红字提示行号和原因。
3
测试替换
切换到「替换」标签,在「替换为」框输入替换规则(支持 $1 $2 反向引用),工具实时预览替换后的完整文本。
常见问题
四种正则引擎有什么区别?
PCRE(PHP/Go/部分场景)支持 \K 回溯断言、占有量词;JS 是浏览器原生,不支持 \A\Z 和占有量词;Java 支持 (?<name>group) 命名捕获;Python 的 re 模块默认非贪婪匹配略不同。同一正则不同引擎结果可能不一致,选错引擎会调试困难。
高亮匹配没有显示怎么办?
常见原因:(1) 正则语法错误,工具会用红字提示行号;(2) 没有勾选 g 全局标志,只匹配第一个;(3) 贪婪/非贪婪写反。建议先用一个简单输入测试,如 abc123,确认基础匹配正常再加复杂规则。
支持命名捕获组吗?
支持。匹配结果会单独列出所有命名捕获组(如 (?<year>\d{4})),右侧面板可一键复制。JS 引擎使用 (?<name>...) 语法,Python 用 (?P<name>...),工具会自动适配。
正则性能怎么样?会卡吗?
本地浏览器执行,处理 10 万字符文本在 100ms 内。灾难性回溯(如 (a+)+$ 模式)会导致 CPU 占用飙升,工具默认超时 1 秒,超时自动停止并标记为灾难正则。