我想替换包含字符c#
的所有字符串,其中包括c#-4.0
,c#-3.0
,ms-c#
等。
如何查看字符串中是否存在c#
,如果存在,只需替换该字符串的c#
部分?
即。对于c#-4.0
,修改后的字符串将为c%23-4.0
。如果使用Ruby核心库的本机方法(比如String
的方法之一),那将更为可取。
我尝试了tagname.replace('c%23')
但是替换了整个字符串,而不仅仅是匹配模式的子字符串。
思想?
答案 0 :(得分:2)
使用String gsub方法:
"c#-4.0".gsub!(/c#/, "c%23")
答案 1 :(得分:2)
您可以使用String的gsub
方法。 (如果您只想在字符串中替换一次,请使用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"