在线正则表达式测试与调试器:开发者的免费工具
正则表达式 (Regex) 是用于模式匹配和文本操作的极其强大的工具。然而,它们也因难以正确编写而臭名昭著。一个字符的缺失或错误的修饰符可能意味着工作脚本与损坏脚本之间的区别。我们的在线正则表达式测试器旨在通过提供免费、实时的环境来测试、调试和完善您的正则表达式,从而解决这个问题。
快速开始:立即测试您的正则表达式
👉 使用我们的 正则表达式测试器 立即验证您的模式。获取关于匹配项和捕获组的实时反馈。
什么是正则表达式 (Regex)?
正则表达式是形成搜索模式的字符序列。它可以用于字符串匹配、搜索和替换文本。几乎所有编程语言都支持正则表达式,包括 JavaScript、Python、PHP、Java 和 C#。
虽然基本语法在不同语言之间保持相似,但也存在细微的差别(通常称为“流派”)。我们的在线工具主要使用 JavaScript 正则表达式引擎,这是 Web 开发的标准,并且与其他现代引擎高度兼容。
了解正则表达式修饰符 (Flags)
修饰符改变正则表达式的解释方式。我们的工具支持以下标准修饰符:
- g (全局):不要在第一个匹配项处停止;查找所有出现位置。
- i (忽略大小写):不区分大小写的匹配(例如,
[A-Z]匹配a-z)。 - m (多行):
^和$匹配每行的开头和结尾,而不仅仅是整个字符串。 - s (DotAll):允许
.匹配换行符。 - u (Unicode):将模式视为 Unicode 码位序列。
- y (粘性):仅从 lastIndex 属性指示的索引处开始匹配。
正则表达式速查表:常见模式
为了帮助您入门,这里有一个常用正则表达式模式的快速参考表:
| 模式 | 含义 | 示例 |
|---|---|---|
. |
除换行符外的任何字符 | h.t 匹配 hat, hot |
\d |
任何数字 (0-9) | \d\d 匹配 22 |
\w |
任何单词字符(字母数字 + 下划线) | \w+ 匹配 word_1 |
\s |
任何空白字符(空格、制表符、换行符) | \s 匹配 |
^ |
字符串开头 | ^Hello |
$ |
字符串结尾 | world$ |
* |
0 次或多次出现 | lo* 匹配 l, lo, loo |
+ |
1 次或多次出现 | lo+ 匹配 lo, loo |
? |
0 次或 1 次出现 | colou?r 匹配 color, colour |
[abc] |
括号中的任何字符 | [bt]at 匹配 bat, tat |
(abc) |
捕获组 | `(red |
实际示例和用例
1. 验证电子邮件地址
一个基本的电子邮件验证正则表达式可能如下所示:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2. 匹配电话号码
对于标准的美国电话号码格式 (xxx-xxx-xxxx):
^\d{3}-\d{3}-\d{4}$
3. 提取 URL
在文本块中查找所有 URL:
https?:\/\/[^\s$.?#].[^\s]*
如何使用在线正则表达式测试器
- 输入您的模式:在“模式”字段中输入您的正则表达式。
- 选择修饰符:根据您的需要切换
g、i或m等修饰符。 - 输入测试文本:在“测试字符串”字段中粘贴要搜索的文本。
- 查看结果:匹配项将实时突出显示,您可以查看捕获组的详细信息。
常见问题 (FAQ)
问:为什么我的正则表达式在代码中无法匹配?
答:检查您是否使用了正确的正则表达式“流派”。虽然大多数语法是通用的,但某些功能(如“反向查找”或某些字符类)在 Python 与 JavaScript 中的行为可能不同。此外,请确保在字符串文字中正确转义反斜杠(例如,在 Java 中,您通常需要 \\d 而不是 \d)。
问:* 和 + 之间有什么区别?
答:* 匹配 零次或多次,这意味着前面的字符是可选的。+ 匹配 一次或多次,这意味着该字符必须至少出现一次。
问:如何匹配字面意义上的点 .?
答:由于点在正则表达式中是一个特殊字符(表示“任何字符”),因此您必须使用反斜杠对其进行转义:\.。
结论
掌握正则表达式是一个过程,但拥有正确的工具会让它变得容易得多。我们的在线正则表达式测试器提供了构建复杂模式所需的清晰度和反馈。
准备好调试您的模式了吗?立即尝试正则表达式测试器!