我想从字符串中删除单个字词:
str = "I would like to remove THIS word but not THIS word"
我只想删除第一个'THIS'
,并给出结果:
str = "I would like to remove word but not THIS word"
我在思考索引的内容:
word = 'THIS'
word.length # => 4
str.index(word) # => 23
有没有办法说,在第23个字符后删除4个字符?
我看到有很多方法可以删除前导和尾随字符,但不确定内部字符。 Gsub将删除该单词的所有实例,这不是我正在寻找的。 p>
答案 0 :(得分:6)
您可以使用sub
,它只会影响第一个匹配事件。
str.sub!(word, '');
答案 1 :(得分:4)
要仅删除第一次出现的THIS
,请执行:
str.sub!("THIS", "")
要删除第23个字符后的四个字符(即第24个字符),请执行以下操作:
str[24, 4] = ""
答案 2 :(得分:3)
str = "I would like to remove THIS word but not THIS word"
str.sub!(/\bTHIS\b/,'')
#=> "I would like to remove word but not THIS word"
str = "THISTLE sounds like WHISTLE. I want to remove THIS word"
str.sub!(/\bTHIS\b/,'')
# => "THISTLE sounds like WHISTLE. I want to remove word"
,而
str.sub("THIS", '')
#"TLE sounds like WHISTLE. I want to remove THIS word"
正则表达式中的 \b
是"word break"。 (搜索“锚点”。)