求助解析JSON对象时正则表达式的写法,对双引号的处理 20
这是在解析JSON对象时碰到的问题,通过正则表达式将下面的:title:"越南查禁中国邮票称所印西沙群岛为"越南领土"",改变为title:"越南查禁中国邮票称所印西沙群...
这是在解析JSON对象时碰到的问题,通过正则表达式将下面的:
title: "越南查禁中国邮票 称所印西沙群岛为"越南领土"",
改变为
title: "越南查禁中国邮票 称所印西沙群岛为\"越南领土\"",
就是将“越南领土”前的两个双引号前加上反斜杠,其余的双引号是正常标记,不用加,可能要用到零宽度断言,但不知道怎么写,谢谢。
是需要实现通用的修改方法,而不是写死,因为在实际中并不知道文本中的双引号会在何时出现,而json信息中会有正常出现的双引号,这样的情况是要跳过,下面是部分文本。
{
category:"国际",
title:"越南查禁中国邮票 称所印西沙群岛为"越南领土"",
pubDate:"2013/09/16 21:28"
} 展开
title: "越南查禁中国邮票 称所印西沙群岛为"越南领土"",
改变为
title: "越南查禁中国邮票 称所印西沙群岛为\"越南领土\"",
就是将“越南领土”前的两个双引号前加上反斜杠,其余的双引号是正常标记,不用加,可能要用到零宽度断言,但不知道怎么写,谢谢。
是需要实现通用的修改方法,而不是写死,因为在实际中并不知道文本中的双引号会在何时出现,而json信息中会有正常出现的双引号,这样的情况是要跳过,下面是部分文本。
{
category:"国际",
title:"越南查禁中国邮票 称所印西沙群岛为"越南领土"",
pubDate:"2013/09/16 21:28"
} 展开
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询