我有一个页面,其中包含//script[@data-type="application/ld+json"]
此脚本的内容与以下内容相似。
<script>
{
"one": "some text here",
"two": "some "other" text here"
}
</script>
是否可以使用正则表达式将双引号替换为单引号,所以我有:
"two": "some 'other' text here"
或者只是完全删除内部引号
我可以使用replace
函数
主要问题是我不知道如何只匹配字符串中的引号。
答案 0 :(得分:4)
通常,由于您的内容含糊不清,因此无法完成。考虑:
{
"one": "some text here",
"two": "some ", "three": " text here"
}
您必须采用一些规则,例如说如果在"
或some
之后的,
之后的}
被当作终端引号(可以在前面加上空格) ),否则将其用作嵌套字符串的起始引号。这种逻辑似乎远远超出了您在正则表达式中可以表达的逻辑。而且在任何情况下,有时都会给您错误的答案。
答案 1 :(得分:0)
如果是这样,也许您应该尝试使用以下正则表达式。
"(?=\w+"| )(?!\w+":)
我没有您的全部范围,我只是根据您在此处输入的模式写的。
您可以在Sublime或https://regexr.com/
上测试正则表达式