gpt4 book ai didi

ruby - 用长字符串替换

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

我正在使用 gsub 替换文本文件中的长字符串的一部分,例如。

      str.gsub!(/#{str1}/){"#{updates}"}

当字符串变长时,ruby 会返回字符串过长的错误。我怎么解决这个问题?有没有 gsub 的替代品可以做同样的工作?据我所知,gsub 会生成原始数据的副本,效率很低。

最佳答案

如果str1只是一个字符串而不是一个正则表达式片段那么你可以这样做:

str[str1] = updates

替换str1的一部分 strupdates到位。例如:

>> s = 'Where is X house?'
=> "Where is X house?"
>> s['X'] = 'pancakes'
=> "pancakes"
>> s
=> "Where is pancakes house?"

如果要替换所有 str1,则必须在某种循环中重复该操作,直到出现 IndexError在str虽然。

正则表达式很棒,但你的工具箱不应该只有一把锤子。

顺便说一句,如果str1应该只是一个字符串,你应该使用 Regexp.escape 在将其插入正则表达式之前对其进行处理。

关于ruby - 用长字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379173/

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