这是我的字符串:
mystring = %Q{object1="this is, a testyay', asdkf'asfkd", object2="yo ho', ho"}
我要分开mystring
在逗号上,因此我想(暂时)去掉转义引号之间的逗号。
因此,我需要匹配转义引号 + 一些字符 + 一个或多个逗号 + 转义引号,然后 gsub 匹配字符串中的逗号。
我想出的 gsub 的正则表达式是/(".*?),(.*?")/
,我这样使用它:newstring = mystring.gsub(/(".*?),(.*?")/ , "\\1|TEMPSUBSTITUTESTRING|\\2")
,但这仅替换它在转义引号之间找到的第一个逗号。
我怎样才能让它替换所有逗号?
Thanks.
我相信这是实现您想要的结果的一种方法。
newstring = mystring.gsub(/".*?,.*?"/) {|s| s.gsub( ",", "|TEMPSUBSTITUTESTRING|" ) }
它将匹配的字符串(带引号的部分)传递到代码块,然后替换所有出现的逗号。最初的正则表达式可能是/".*?"/
,但它的效率可能会较低,因为即使没有逗号,也会为每个带引号的字符串调用代码块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)