"reversea, eacha worda" 像这样,这与单引号基本相同: "rev-6ren">
gpt4 book ai didi

Ruby 字符串操作不适用于捕获的组

转载 作者:数据小太阳 更新时间:2023-10-29 07:45:46 24 4
gpt4 key购买 nike

这个字符串替换有效:

"reverse, each word".gsub(/(\w+)/, "\\1a")
=> "reversea, eacha worda"

像这样,这与单引号基本相同:

"reverse, each word".gsub(/(\w+)/, '\1a')
=> "reversea, eacha worda"

但是如果我尝试反转字符串,它会失败:

"reverse, each word".gsub(/(\w+)/, "\\1a".reverse)
=> "a1\\, a1\\ a1\\"

我玩过它,但似乎无法使反向操作起作用。

最佳答案

我经常碰到这个。捕获组在 block 范围内可用,因此重写如下:

"reverse, each word".gsub(/(\w+)/) { |match| $1.reverse + "a" }

或者因为你的匹配是组,你可以完全省略组

"reverse, each word".gsub(/\w+/) { |match| match.reverse + "a" }

关于Ruby 字符串操作不适用于捕获的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4156250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com