Ruby支持条件正则表达式吗

5 投票
2 回答
762 浏览
提问于 2025-04-15 18:56

这只是一个关于语言特性的提问,我知道有很多方法可以做到这一点,不一定非得用正则表达式(或者用多个正则表达式)。

请问,Ruby支持条件正则表达式吗?简单来说,就是在正则表达式里面有一个IF-THEN-ELSE的分支,其中IF的条件是看某个捕获组是否存在(或者不存在)。

在Perl中,语法是(?(predicate)yes-pattern|no-pattern),就像下面这样:

/(?:y|(x))(?(1)y|x)/

我在浏览的Ruby文档中没有找到任何类似的参考,所以我想在这里问一下,以防我搜索的词不对,或者文档中没有提到这个内容。

2 个回答

-1

顺便提一下,Python 从 2.4 版本开始就支持这个功能了:http://docs.python.org/library/re#regular-expression-syntax

4

不,Ruby不支持这个功能(无论是1.8版本还是1.9版本都不支持)。

撰写回答