【发布时间】:2010-11-17 16:43:47
【问题描述】:
我想在 Ruby 脚本的文本中匹配正则表达式(至少是基本的,不是所有可能的类型......暂时......)。
有点像……\/\^? oh my god... \$?\/[eimnosux]*
也许我在这里需要递归正则表达式。
【问题讨论】:
-
我仍然对此持怀疑态度。例如,即使是像“hello world”这样的简单字符串也可以用作正则表达式模式。您是否要求某种启发式方法?
-
@alpha-mouse,
\/\^? \$?\/[eimnosux]*是我想要的基本示例。我想匹配正则表达式,以最简单的形式放置在 Ruby 源代码中:/....../。不是%r{}或Regex.new(str)。 -
您需要为此实际解析 Ruby。想想这行代码:
x = foo/bar*str[/foo/,1].to_i如果没有根据语法实际解析 Ruby 代码,你无法知道第一个斜杠是否应该开始一个正则表达式。 -
@Phrogz,我知道,我正在解析 Ruby 代码。我正在尝试使用正则表达式来解析它,而不是迭代的逐字符读取算法。在您的示例中,我的解析器的另一部分看到,正则表达式不能紧跟在
foo之后,而/是一种方法。 -
@Nakilon 我很好奇你的解析器是怎么看的。
foo / bar是有效除法,foo /bar/是通过正则表达式作为参数的有效方法调用。
标签: ruby regex recursive-regex