0

我需要使用 reg-exes 查找带有 * 和 / 的字符串,我正在用 Ruby 编写。需要找到很多 * 和 / 的原因是我正在为一种语言构建一个标记器,并且有多行注释使用 C 风格的多行注释 (/* */)。我已经处理了单行注释。

有没有一种方法可以使用 reg-ex 而不必使用两个前言斜杠来表示一些正则表达式,因为我发现由于大量的转义而无法找到我的错误。或者有人可以就如何在理智的情况下处理逃逸问题给我建议?我已经尝试过先编写序列然后转义它。

感谢您的时间和建议。

4

1 回答 1

2

一个可能有帮助的技巧是%r文字:

%r{http://www\.google\.com}

当管道不在正则表达式中时,我喜欢自己使用管道。

%r|http://www\.google\.com|

您还可以通过创建 Regexp 的新实例Regexp.new并传递一个字符串。

最后,您还可以查看Regexp.quote

转义任何在正则表达式中具有特殊含义的字符。返回一个新的转义字符串,如果没有转义字符,则返回 self。对于任何字符串,Regexp.new(Regexp.escape(str))=~str都将是真的。

于 2012-04-08T07:07:19.537 回答