您好我正在尝试在Ruby中构建一个简单的操作,它接受一个像
这样的字符串 result = "This is my javascript variable 'var first = 1 + 1;' and here is another 'var second = 2 + 2;' and that's it!"
所以基本上我想在单引号'
或反引号`
中使用该文本并将其替换为:
<code>original text</code>
请注意我正在用开始和结束code
标记
就像降价一样
所以我会得到像
这样的结果 result = "This is my javascript variable <code>var first = 1 + 1;<code> and here is another <code>var second = 2 + 2;</code> and that's it"
如果可以在不需要任何额外宝石的情况下本地运行,那就太棒了:)
非常感谢
答案 0 :(得分:2)
我猜你需要迭代字符串并解析它。虽然你可以做非贪婪的正则表达式匹配,例如result.gsub!(/'([^']*)'/, '<code>\1</code>')
您可能会发现结果在角落情况下的行为可能不正确。
答案 1 :(得分:1)
没有任何其他高级要求
>> result.gsub(/\s+'/,"<code>").gsub(/'\s+/,"</code>")
=> "This is my javascript variable<code>var first = 1 + 1;</code>and here is another<code>var second = 2 + 2;</code>and that's it!"
答案 2 :(得分:1)
您需要提供一个字符作为代码的分隔符,否则您不会使用它。
为什么呢?因为所有的角落案件。例如。以下字符串
result = "This's my javascript variable 'var first = 1 + 1;' and here is another 'var second = 2 + 2;' and that's it!"
否则会产生:
"This<code>s my javascript variable </code>var first = 1 + 1;<code> and here is another </code>var second = 2 + 2;<code> and that</code>s it!"
垃圾总量..
但是,如果您使用唯一字符作为未使用的分隔符,则可以创建一个非贪婪的RegExp来执行搜索/替换
e.g。使用#字符分隔代码:
"This's my javascript variable #var first = 1 + 1;# and here is another #var second = 2 + 2;# and that's it!"