ruby如何替换字符串的多个

Python013

ruby如何替换字符串的多个,第1张

"abcdefghijklmnopqrstuvwxyz".slice(9, 6)

找第10个字符开始的6个字符 也就是第10到第15个 索引从0开始 所以是9, 6

当然因为这是 ruby 所以我们还可以这么写

"abcdefghijklmnopqrstuvwxyz".slice 9, 6

另外我们还有带叹号版本的 slice 方法 它会返回被截取的部分 同时把原始字符串中被截取的部分删除

s = "abcdefghijklmnopqrstuvwxyz"s.slice! 9, 6 # jklmnop s # abcdefghipqrstuvwxyz

可以用 rpartition 来做.

array_of_pieces = string.rpartition sub_or_pattern

( array_of_pieces[(array_of_pieces.find_index sub_or_pattern)] =  replacement ) rescue nil

array_of_pieces.join

??? Ruby的字符串对象生成有两种方式,字符串文字值加单引号或加双引号。

?

??? 两种方式主要区别在于构造文字量时,对字符串的处理次数不同。

?

??? 单引号时,Ruby对字符串值不做处理,里边是什么就是什么。

?

??? 双引号时,Ruby首先要查找文本中要替换的字符,即带反斜杠的字符,用二进制替换。最常见的就是\n;其次,这种方式下可以插入表达式#{...},那就要处理表达式,将其替换成具体的值。

一实例即可说明问题

@title="test"

p '<title>#{@title}</title>'

#原样输出

# =>"<title>\#{@title}</title>"

p "<title>#{@title}</title>"

#计算出变量的值,再变成字符串输出

# =>"<title>test</title>"

#内容亦可以进行字符串运算

p "<title>#{"this is "+@title}</title>"

# =>"<title>this is test</title>"