2

、、などc#を含む文字を含むすべての文字列を置き換えたい。c#-4.0c#-3.0ms-c#

c#文字列内に存在するかどうかを確認し、存在する場合c#はその文字列の一部を置き換えるにはどうすればよいですか?

つまりc#-4.0、変更された文字列は になりますc%23-4.0。Ruby コア ライブラリのネイティブ メソッド (Stringのメソッドの 1 つなど) を使用するとよいでしょう。

試してみtagname.replace('c%23')ましたが、パターンに一致する部分文字列だけでなく、文字列全体が置き換えられます。

考え?

4

2 に答える 2

2

文字列 gsubメソッドを使用します。

"c#-4.0".gsub!(/c#/, "c%23")
于 2013-02-25T15:49:42.287 に答える
2

gsubStringのメソッドを使用できます。(sub文字列内で 1 回だけ置換する場合に使用します)。

"hello".gsub(/[aeiou]/, '*')                  #=> "h*ll*"
"hello".gsub(/([aeiou])/, '<\1>')             #=> "h<e>ll<o>"
"hello".gsub(/./) {|s| s.ord.to_s + ' '}      #=> "104 101 108 108 111 "
"hello".gsub(/(?<foo>[aeiou])/, '{\k<foo>}')  #=> "h{e}ll{o}"
'hello'.gsub(/[eo]/, 'e' => 3, 'o' => '*')    #=> "h3ll*"

# in your case :
"some string c#".gsub!('c#', 'c%23')           #=> "some string c%23"
于 2013-02-25T15:55:05.193 に答える