正则表达式在线测试器:实时匹配与调试指南

工具 次閱讀

什么是正则表达式?

正则表达式(Regular Expression,简称 Regex)是一种用于描述字符串匹配规则的形式语言。它被几乎所有编程语言支持,广泛用于文本搜索、数据验证、字符串提取和替换。

一个简单的例子:

正则:^\d{4}-\d{2}-\d{2}$
含义:匹配 YYYY-MM-DD 格式的日期
测试:2024-05-19 ✓  2024-5-9 ✗  2024/05/19 ✗

正则表达式核心语法速查

语法含义示例
.匹配任意单个字符(换行除外)a.c 匹配 abc、a1c
*前面的元素出现 0 次或多次ab*c 匹配 ac、abc、abbc
+前面的元素出现 1 次或多次ab+c 匹配 abc、abbc,不匹配 ac
?前面的元素出现 0 次或 1 次colou?r 匹配 color 和 colour
\d匹配数字 [0-9]\d{3} 匹配三位数字
\w匹配字母、数字、下划线\w+ 匹配单词
\s匹配空白字符(空格、Tab等)\s+ 匹配一个或多个空白
^字符串开始位置^Hello 匹配以 Hello 开头的字符串
$字符串结束位置world$ 匹配以 world 结尾的字符串
[abc]字符集,匹配其中任一字符[aeiou] 匹配任意元音
()捕获组(\d+)-(\d+) 分别捕获两段数字

常用正则表达式模式

# 验证邮箱
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

# 验证手机号(中国大陆)
^1[3-9]\d{9}$

# 验证 URL
https?://[^\s/$.?#].[^\s]*

# 提取 IP 地址
\b(?:\d{1,3}\.){3}\d{1,3}\b

# 验证强密码(8位以上,含大小写和数字)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$

# 匹配 HTML 标签
<[^>]+>

如何用在线工具测试正则表达式

使用 tool.tl 的正则表达式测试器

  1. 访问 tool.tl/regex-tester
  2. 在正则框输入表达式
  3. 在测试文本框输入要匹配的文本
  4. 实时高亮显示所有匹配结果,同时显示捕获组内容

正则表达式常见标志(Flags)

  • i(忽略大小写):/hello/i 同时匹配 Hello、HELLO
  • g(全局匹配):找到所有匹配项,而非只找第一个
  • m(多行模式):^$ 匹配每行的开始和结束
  • s(dotAll 模式):. 可以匹配换行符

各语言使用正则表达式

# Python
import re
pattern = r'\d+'
matches = re.findall(pattern, 'abc 123 def 456')
print(matches)  # ['123', '456']

# JavaScript
const regex = /\d+/g;
const str = 'abc 123 def 456';
const matches = str.match(regex);
console.log(matches);  // ['123', '456']

# 替换示例(JS)
'Hello World'.replace(/World/, 'Regex')  // 'Hello Regex'

常见问题

正则表达式是否通用于所有语言?

基本语法大致相同,但不同语言在某些高级特性(如零宽断言、Unicode 支持)上有差异。在线测试器通常基于 JavaScript 引擎,与 Python、Java 等略有不同,建议在目标语言环境中最终验证。

正则表达式会影响性能吗?

复杂的正则表达式(尤其是嵌套量词)可能导致「回溯爆炸」,在某些输入下性能急剧下降。生产代码中应对复杂正则进行性能测试。

测试器是免费的吗?

是的,tool.tl 的正则表达式测试器完全免费,实时高亮匹配,显示捕获组,无需注册。