gpt4 book ai didi

ruby-on-rails - Ruby Regex - 需要替换正则表达式匹配中出现的每个字符

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

这是我的字符串:

mystring = %Q{object1="this is, a testyay', asdkf'asfkd", object2="yo ho', ho"}

我打算用逗号拆分 mystring,因此我想(暂时)分出转义引号之间的逗号。

因此,我需要匹配转义引号 + 一些字符 + 一个或多个逗号 + 转义引号,然后 gsub 匹配字符串中的逗号。

我想出的 gsub 正则表达式是 /(".*?),(.*?")/,我这样使用它:newstring = mystring.gsub(/(".*?),(.*?")/, "\\1|TEMPSUBSTITUTESTRING|\\2"),但这只会替换第一个逗号在转义引号之间找到。

如何让它替换所有逗号?

谢谢。

最佳答案

我相信这是实现您想要的结果的一种方法。

newstring = mystring.gsub(/".*?,.*?"/) {|s|  s.gsub( ",", "|TEMPSUBSTITUTESTRING|" ) }

它将匹配的字符串(引号部分)传递给代码块,然后替换所有出现的逗号。初始正则表达式可能是 /".*?"/,但它可能效率较低,因为即使没有逗号,也会为每个带引号的字符串调用代码块。

关于ruby-on-rails - Ruby Regex - 需要替换正则表达式匹配中出现的每个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229790/

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