Ruby正则表达式 - 用文本中间的空格替换点

pap*_*tis 6 ruby regex

我有一个很长的文本,我想用空格替换点,但只在文本的中间.例如:

Domain:...................google.com
Run Code Online (Sandbox Code Playgroud)

我需要这个:

Domain:                   google.com
Run Code Online (Sandbox Code Playgroud)

我发现这个正则表达式用一个空格替换点:

str.gsub!(/(?<=:)\.+(?=[^\.])/, ' ')
Run Code Online (Sandbox Code Playgroud)

但这还不够,因为它产生:

Domain: google.com
Run Code Online (Sandbox Code Playgroud)

我需要保留像点一样多的空间.你会如何解决它?

Ale*_*kin 4

你已经快到了,你的正则表达式很好,只需使用块版本String#gsub来计算替换匹配的长度:

\n\n
\xe2\x96\xb6 str = \'Domain:...................google.com\'\n#\xe2\x87\x92 "Domain:...................google.com"\n\xe2\x96\xb6 str.gsub(/(?<=:)\\.+(?=[^\\.])/) { |m| \' \' * m.length }\n#\xe2\x87\x92 "Domain:                   google.com"\n
Run Code Online (Sandbox Code Playgroud)\n