我正在尝试在ruby中将字符串括在字符串中,只要它还没有被包装:
"my string (to_wrap)" => "my string (to_wrap)"
"my string to_wrap" => "my string (to_wrap)"
我尝试过类似的事情:
to_wrap = 'to_wrap'
regexp = Regexp.new "(?!\()#{to_wrap}(?!\))"
string.sub(regexp, "(#{to_wrap})")
但它不起作用。
提前致谢!
答案 0 :(得分:3)
你非常接近。不过,你的第一个负面看法是前瞻性的。所以它会查看to_wrap
的第一个字符。只是让它成为一个外观:
"(?<!\()#{to_wrap}(?!\))"
只是为了向你展示一个替代选项以逃避括号(这真的是一个使用的味道问题,但我觉得它更容易阅读):
"(?<![(])#{to_wrap}(?![)])"