[英]Using Ruby regex gsub only once
我有以下字符串。
melody = "F# G# A# B |A# G# F# |A# B C# D# |C# B A# |F# F#
|F# F# |F#F#G#G#A#A#BB|A# G# F# "
我想将F#
转换为f
,将G#
转换为g
等。
melody.gsub(/C#/, 'c').gsub(/D#/,'d').gsub(/F#/,'f').gsub(/G#/,'g').gsub(/A#/,'a')
上面给出了期望的输出。 但是我想知道我是否只能使用gsub
一次。
"f g a B |a g f |a B c d |c B a |f f |f f |ffggaaBB|a g f "
String#gsub
接受一个可选块:该块的返回值用作替换字符串:
melody.gsub(/[CDFGA]#/) { |x| x[0].downcase }
# => "f g a B |a g f |a B c d |c B a |f f |f f |ffggaaBB|a g f "
您也可以使用哈希。
melody.gsub(/[CDFGA]#/, {'C#' => 'c', 'D#' => 'd', 'F#' => 'f', 'G#' => 'g', 'A#' => 'a'})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.