2

我想替换所有包含c#可以包括c#-4.0, c#-3.0,ms-c#等字符的字符串。

如何检查c#字符串中是否存在,如果存在,只需替换该c#字符串的部分?

c#-4.0修改后的字符串将是c%23-4.0. 如果使用 Ruby 核心库的本机方法(如String's 方法之一),那将是更可取的。

我试过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如果您只想在字符串中替换一次,请使用)。

"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 回答