识别与某些目标文本匹配的替代项的正则表达式工具或方法?

发布于 2024-10-20 18:03:36 字数 247 浏览 7 评论 0原文

在正则表达式的调试中,我需要找出替代方案中的哪个替代方案实际上导致了匹配。例如,对于目标字符串:

"foo"

使用正则表达式:

"f.*|other"

我需要一种方法来知道在上面的正则表达式中,备用 "f.*" 实际上导致了匹配。

在一些具有许多替代项的复杂正则表达式中,这对于调试来说非常具有挑战性。

In my debugging of regular expression, I need to find out which alternate among the alternatives actually resulted the match. For example, for the target string:

"foo"

with the regular expression:

"f.*|other"

I need a way to know that in the above regular expression, the alternate "f.*" actually resulted the match.

In some complex regular expression with many alternates, this is very challenging for debug.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晚雾 2024-10-27 18:03:36

如果每个备选方案都包含在其自己的捕获组中,则您知道只有其中一个组可以参加比赛。当您查询其他值时,它们将返回 null 或未定义的值。因此,您只需迭代捕获组,直到找到一个不为空的捕获组。详细的过程将取决于您使用的正则表达式风格和/或编程语言;有很大的变化。

因此,如果您的正则表达式是 (f.*)|(other) 并且它与 foo 匹配,则组 #1 将包含 foo 和组 # 2 将为 null(或 nilundef,具体取决于您使用的语言;但请注意,空字符串通常表示成功匹配,但未匹配消耗任何字符)。

If each alternative is enclosed in its own capturing group, you know only one of those groups can participate in the match. The others will return a null or undefined value when you query them. So you just iterate through the capture groups until you find one that's not null. The detailed process will depend on which regex flavor and/or programming language you're using; there's a great deal of variation.

So, if your regex is (f.*)|(other) and it matches foo, group #1 will contain foo and group #2 will be null (or nil, or undef, depending on the language you're using; but be aware that an empty string usually indicates a successful match that didn't consume any characters).

绾颜 2024-10-27 18:03:36
(?<MYRESULT>(?<RESULT1>f.*)|(?<RESULT2>other))

现在 MYRESULT 和 RESULT1 或 RESULT2 都将包含您的匹配项。

(?<MYRESULT>(?<RESULT1>f.*)|(?<RESULT2>other))

Now both MYRESULT and RESULT1 or RESULT2 will contain your match.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文