> "name: Name, phone_number: Phone Number, inactiv-6ren">
gpt4 book ai didi

Ruby gsub 正则表达式将第一个匹配的字符添加回替换的字符串

转载 作者:数据小太阳 更新时间:2023-10-29 08:01:20 25 4
gpt4 key购买 nike

我在下面的 ruby​​ 中有一个小的正则表达式片段,它用 ': ~' 替换了 ": [\w]"

>> "name: Name, phone_number: Phone Number, inactive: Inactive ".gsub(/[:]\s[\w]/, ': ~')

=> "name: ~ame, phone_number: ~hone Number, inactive: ~nactive "

如何修改 gsub 表达式以将第一个字符添加回被替换的字符串中,即:

=> "name: ~Name, phone_number: ~Phone Number, inactive: ~Inactive "

谢谢

最佳答案

首先,您不需要围绕单个字符/特殊字符组使用 [],因为将多个字符组合在一起才有意义。您的正则表达式相当于 /:\s\w/

要解决您的问题,您可以使用捕获组并重新插入捕获的字母:

s.gsub(/:\s(\w)/, ': ~\1')
# => "name: ~Name, phone_number: ~Phone Number, inactive: ~Inactive "

或者首先使用前瞻来不替换字母:

s.gsub(/:\s(?=\w)/, ': ~')
# => "name: ~Name, phone_number: ~Phone Number, inactive: ~Inactive "

也许您更愿意使用 /:\s+(?=\w)/,这样可以在下一个字符之前留出一个以上的空格。

关于Ruby gsub 正则表达式将第一个匹配的字符添加回替换的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9385971/

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