我想替换所有包含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')
了,但这会替换整个字符串,而不仅仅是与模式匹配的子字符串。
想法?
我想替换所有包含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')
了,但这会替换整个字符串,而不仅仅是与模式匹配的子字符串。
想法?
使用字符串 gsub方法:
"c#-4.0".gsub!(/c#/, "c%23")
可以使用gsub
String的方法。(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"