Sah*_*lly 3 ruby regex ruby-on-rails
我正在尝试在字符串开头的新行中追加 10 个空格:
string = "\nHello"
Run Code Online (Sandbox Code Playgroud)
应改为:
"\n Hello"
Run Code Online (Sandbox Code Playgroud)
尝试了以下和其他方式但徒劳无功
string.gsub!("\n", "\n(\s){10}")
#=> "\n( ){10}Hello"
Run Code Online (Sandbox Code Playgroud)
和
string.gsub!("\n", "\n[\s]{10}")
#=> "\n[ ]{10}Hello"
Run Code Online (Sandbox Code Playgroud)
您可以使用 gsub,保留匹配的元素并附加“n”个空格。
string = "\nHello"
p string.gsub(/\n/) { |match| "#{match}#{' ' * 20}" }
# "\n Hello"
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想替换它们:
string.gsub(/\n/, ' ' * 20)
Run Code Online (Sandbox Code Playgroud)
如果要将 \n 限制为字符串中的第一个字符,则 gsub 的第一个参数将是\A\n.
我认为对您尝试的更准确的是:
string.gsub(/(\n)/, "#{$1}#{' ' * 20}")
Run Code Online (Sandbox Code Playgroud)
或者,如果知道 \n 可以在任何地方并且您只关心附加 X \s:
string.gsub(/\n/, "\n#{"\s" * 20}")
Run Code Online (Sandbox Code Playgroud)