求助解析JSON对象时正则表达式的写法,对双引号的处理 20

这是在解析JSON对象时碰到的问题,通过正则表达式将下面的:title:"越南查禁中国邮票称所印西沙群岛为"越南领土"",改变为title:"越南查禁中国邮票称所印西沙群... 这是在解析JSON对象时碰到的问题,通过正则表达式将下面的:
title: "越南查禁中国邮票 称所印西沙群岛为"越南领土"",
改变为
title: "越南查禁中国邮票 称所印西沙群岛为\"越南领土\"",
就是将“越南领土”前的两个双引号前加上反斜杠,其余的双引号是正常标记,不用加,可能要用到零宽度断言,但不知道怎么写,谢谢。
是需要实现通用的修改方法,而不是写死,因为在实际中并不知道文本中的双引号会在何时出现,而json信息中会有正常出现的双引号,这样的情况是要跳过,下面是部分文本。

{
category:"国际",
title:"越南查禁中国邮票 称所印西沙群岛为"越南领土"",
pubDate:"2013/09/16 21:28"
}
展开
 我来答
Leo分享
2013-09-17 · TA获得超过754个赞
知道小有建树答主
回答量:1405
采纳率:0%
帮助的人:773万
展开全部

废话不多说

直接上代码

json不会

js代码

a = '"越南查禁中国邮票 称所印西沙群岛为"越南领土""';
var b;
b = a.replace(/"越南领土"/,'\\"越南领土\\"');
document.write(b);
mxl033
2013-09-17 · TA获得超过216个赞
知道小有建树答主
回答量:120
采纳率:61%
帮助的人:85.2万
展开全部

你可以尝试把最外面的"改成‘这样里面的嵌套"就都不用转义了,比你这个办法方便点,当然前提是你要引用的字符串里面没有需要转义的字符,因为单引号引用的部分,所有字符不转义

不知道你用什么处理json,我就发个Ruby的,仅供参考

output = File.new("tmp.new", "w+")
IO.foreach("tmp") do |line|
  output.puts line.gsub(/^(.*:\s*)"(.*)"(\s*)$/, '\1\'\2\'\3')
end
output.close

 

其实单引号在json里面也可以使用的,当然前提如上所述,没有需要转义的字符,但你一定要跳过的话,那就改下:

output = File.new("tmp.new", "w+")
IO.foreach("tmp") do |line|
    if /^.*".*".*".*$/ =~ line
        output.puts line.gsub(/^(.*:\s*)"(.*)"(\s*,*\s*)$/, '\1\'\2\'\3')
    else
        output.puts line
    end
end
output.close
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式