我有正则表达式:
/([^\r])(\n)+/
我希望将其替换为:
"#{$1}#{replacement_var}"
$2
必须是非"\n"
字符后的"\r"
的确切数量。
例如:if replacement_var = "ben"
,然后:
"0\n\r\n\n123\n\n\n456\r\n"
应该成为:
"0ben\r\nben123benbenben456\r\n"
我可以放弃在正则表达式中放弃([^\r])
然后再次替换(" \ rben"与" \ r \ n"),但我我想知道我是否可以避免两个正则表达式操作并在一个操作中完成。
答案 0 :(得分:2)
尝试类似
的内容replacement_var = "ben"
"0\n\r\n\n123\n\n\n456\r\n".gsub(/((?<!\r)\n+)/) { replacement_var * $1.size }
#=> "0ben\r\nben123benbenben456\r\n"