Ruby正则表达式如何在回溯后替换每个项?
我正在努力用HTML替换一些空格;人物。 我试图用一个nbsp替换每个空间;字符(不是用一个nbsp;替换所有字符) 以下是我目前正在尝试的:Ruby正则表达式如何在回溯后替换每个项?,ruby,regex,Ruby,Regex,我正在努力用HTML替换一些空格;人物。 我试图用一个nbsp替换每个空间;字符(不是用一个nbsp;替换所有字符) 以下是我目前正在尝试的: "My String: ".gsub(/(?<=:).*\s/, ' ') =>"My String: " “我的字符串:”.gsub(/(?“我的字符串:” 但这是我能做到的最接近的(我有点明白为什么它不起作用,但我不能把它带到下一步——如果有一步的话?) 有没有任何正则表达式神
"My String: ".gsub(/(?<=:).*\s/, ' ')
=>"My String: "
“我的字符串:”.gsub(/(?“我的字符串:”
但这是我能做到的最接近的(我有点明白为什么它不起作用,但我不能把它带到下一步——如果有一步的话?)
有没有任何正则表达式神可以帮助你?如果你对你的正则表达式感到满意,你可以:
p "My String: ".gsub(/(?<=:).*\s/){|x| ' '*x.size }
#=> "My String: "
每一个,但不是全部?对我来说没有意义。@SergioTulentsev-我的意思是如果我有5个空格,我想要5个破折号,而不是1个破折号来代表这5个空格。我会尽量澄清。谢谢Hirolau!很有魅力-我不知道你可以像第一个例子那样通过gsub一个街区。不过,我认为第二个更干净。干杯:)
# Any single space character that must be followed by 0+ spaces and then end of string.
string.gsub(/\s(?=\s*\Z)/,' ')