0

我正在解决http://www.rubeque.com/problems/a-man-comma--a-plan-comma--a-canal--panama-excl-/solutions但我对治疗有点困惑#{} 作为正则表达式中的注释。我的代码现在看起来像这样

def longest_palindrome(txt)
  txt[/#{txt.reverse}/]
end

我试过了txt[/"#{txt.reverse}"/]txt[#{txt.reverse}]但没有任何效果如我所愿。我应该如何将变量暗示到正则表达式中?

4

2 回答 2

1

这不是你可以用正则表达式做的事情。

虽然您可以在构建正则表达式时使用变量插值(请参阅其他答案/评论),但这对您没有帮助。您只能使用它来反转文字字符串,而不是正则表达式匹配结果。即使你可以,你仍然不会解决“找到最长的回文”部分,至少没有可接受的运行时性能。

使用不同的方法解决问题。

于 2013-05-27T16:13:25.217 回答
0

如果没有例子,很难说你希望这种情况发生,但我想你在追求

txt[/#{Regexp.escape(txt.reverse)}/]

请参阅Regexp#escape方法

于 2013-05-27T16:13:36.707 回答