我在尝试将这段代码翻译成 Ruby,但遇到了问题。
以下是一段 JavaScript 代码,它完全符合我的需求:
function get_code(str){
return str.replace(/^(Z_.*): .*/,"$1");
}
我已经尝试过gsub,sub和replace,但似乎都不能达到我的预期效果。
下面是我尝试过的一些例子:
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/) { |capture| capture }
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "$1")
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "#{$1}")
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "\1")
"Z_sdsd: sdsd".gsub(/(.).*/) { |capture| capture }
-e
)时,更有可能看到双引号:printf "Punkinhead the name" | ruby -ne 'puts gsub /.*(the name)/, "Jonathans \\1"'
因为提供给-e
的表达式通常会用单引号括起来。 - Jonathan Komar"\\1"
而不是'\1'
。然后就可以像这样使用"Z_123_2018".gsub(/\A(Z_\d+_)(\d{4})\z/, "\\1#{$2.to_i+1}") → "Z_123_2019"
。 - Sandro L