使用正则表达式替换或去除javascript中两个字符之间的特定字符

使用正则表达式替换或去除javascript中两个字符之间的特定字符,javascript,regex,Javascript,Regex,使用正则表达式替换javascript中两个字符之间的特定字符 我的具体要求是 我想在双引号之间替换单引号 例如:SDADDS的SDADDS“这是‘报价’”->SDADDS的SDADDS“这是报价” 我试过了 `sdadads'sdasdads"this is the 'quote"`.replace(/\"[^\']\"/g, 'replaced') 但结果是 sdadads的sdads已替换您可以捕获双引号本身以及捕获组中双引号之间的内容。然后使用替换函数,将第二个捕获组中的所有单引号替换

使用正则表达式替换javascript中两个字符之间的特定字符

我的具体要求是

我想在双引号之间替换单引号

例如:SDADDS的SDADDS“这是‘报价’”->SDADDS的SDADDS“这是报价”

我试过了

`sdadads'sdasdads"this is the 'quote"`.replace(/\"[^\']\"/g, 'replaced')
但结果是


sdadads的sdads已替换

您可以捕获双引号本身以及捕获组中双引号之间的内容。然后使用替换函数,将第二个捕获组中的所有单引号替换为空字符串

(")([^"]+)(")
let str=`sdadads'sdadads“这是'quote'”;
设res=str.replace(/(“”([^“]+)(“”)/g,函数(u2;,g1,g2,g3){
返回g1+g2。替换(“,”)+g3;
});

console.log(res);
您可以捕获双引号本身以及捕获组中双引号之间的内容。然后使用替换函数,将第二个捕获组中的所有单引号替换为空字符串

(")([^"]+)(")
let str=`sdadads'sdadads“这是'quote'”;
设res=str.replace(/(“”([^“]+)(“”)/g,函数(u2;,g1,g2,g3){
返回g1+g2。替换(“,”)+g3;
});

控制台日志(res)在Javascript中不允许使用可变宽度负查找,因此您可以使用\K运算符查找
'
是否位于两个双引号之间,或者是否使用此正则表达式

"[^']*\K'(?=[^']*")
说明:

  • -->匹配双引号
  • [^']*
    -->匹配零个或多个字符—除单引号外的任何字符
  • \K
    -->重置迄今为止匹配的内容
  • -->匹配文字单引号
  • (?=[^']*”)
    -->向前看,确保在零个或多个字符(单引号除外)后有双引号

Javascript中不允许使用可变宽度负查找,因此您可以使用\K运算符查找
'
是否位于两个双引号之间,或者是否使用此正则表达式

"[^']*\K'(?=[^']*")
说明:

  • -->匹配双引号
  • [^']*
    -->匹配零个或多个字符—除单引号外的任何字符
  • \K
    -->重置迄今为止匹配的内容
  • -->匹配文字单引号
  • (?=[^']*”)
    -->向前看,确保在零个或多个字符(单引号除外)后有双引号

您可以使用:

var str=`this'是'quote'`
var repl=str.replace(/“[^”]*”/g,函数($0){
返回$0.replace(/“/g,”);});
console.log(repl);
//=>“这是报价”
您可以使用以下内容:

var str=`this'是'quote'`
var repl=str.replace(/“[^”]*”/g,函数($0){
返回$0.replace(/“/g,”);});
console.log(repl);



//=>“这是引号”
在“…”内可以有多个单引号吗?是的,可以有多个单引号,我想删除双引号之间的所有单引号。遇到此
asdf“asdf”d'asdf'asdf时,您会怎么做“
?我有结构化数据,所以我的情况永远不会是这样。在“…”中可以有多个单引号吗?是的,可以有多个单引号,我想删除双引号之间的所有单引号。遇到此
asdf“asdf”d'asdf'asdf时,您会怎么做“
?我有结构化的数据,所以这永远不会是我的情况。我没有否决你的意见,但我可以想象这是因为这只处理一个报价。还有,为什么要用“replace”替换单引号?问题很明显是关于删除单引号。老兄,我想在双引号之间去掉单引号,你能帮我找到我想要的吗?非常感谢老兄。实际上,不需要任何捕获组。此外,
.replace(“,”)
将只替换一个引号。@anubhava你是对的,如果你在全场比赛中替换,就容易多了。我没有否决你,但我可以想象这是因为这只处理一个引号。还有,为什么要用“replace”替换单引号?问题很明显是关于删除单引号。老兄,我想在双引号之间去掉单引号,你能帮我找到我想要的吗?非常感谢老兄。实际上,不需要任何捕获组。此外,
.replace(“,”)
将只替换一个引号。@anubhava你是对的,如果你在全场比赛中替换,就容易多了。Bht Bht Dhanyawad bhai,Bht der se nhi mil rha tha。Javascript中没有
\K
。这是PCRE功能对不起我的坏。。。我忘记了\K不适用于JS。请选择Anubhava的答案作为接受答案。非常感谢您。Javascript中没有
\K
。这是PCRE功能对不起我的坏。。。我忘记了\K不适用于JS。请选择Anubhava的答案作为被接受的答案。非常感谢谢谢你,兄弟,非常感谢。它很有效,但我需要我在另一个答案中得到的正则表达式。abhinav你也去掉了双引号哦,是的,现在修好了非常感谢他们只是问你是否知道有一种正确的方法可以将django变量解析为json。谢谢兄弟,非常感谢你它可以工作,但我需要我在另一个答案中得到的正则表达式。abhinav你也在去掉双引号哦,是的,现在修复了,非常感谢您,他们只是问您是否知道有一种正确的方法可以将django变量解析为json。