首页 > 解决方案 > 如何使用正则表达式在字符串中用单引号替换双引号?

问题描述

我有一个页面,其中包含//script[@data-type="application/ld+json"]

此脚本的内容类似于以下内容。

<script>
{
  "one": "some text here",
  "two": "some "other" text here"
}
</script>

是否可以使用正则表达式用单引号替换双引号,所以我有:

"two": "some 'other' text here"

或者只是完全删除内部引号

我可以使用该replace功能

主要问题是我不知道如何只匹配字符串内的引号。

标签: regexxmlxpath

解决方案


一般来说,它无法完成,因为您的内容不明确。考虑:

{
  "one": "some text here",
  "two": "some ", "three": " text here"
}

您将不得不采用一些规则,例如说如果后跟或(可选地以空格开头),则将"aftersome视为终端引号,否则将其视为嵌套字符串的起始引号。这种逻辑似乎远远超出了你可以用正则表达式表达的东西。无论如何,它有时会给你错误的答案。,}


推荐阅读