Regex 当后跟另一个字符时,删除周围的字符

Regex 当后跟另一个字符时,删除周围的字符,regex,Regex,我有以下特点: {"foo":"bar"} 正则表达式的目标是在最后一个引号后跟冒号时查找周围的双引号。 在上述情况下,它应该单独找到前两个双引号,因为最后两个双引号后面跟一个冒号 我目前有以下正则表达式:(“”+[^”]+“+:),它找到“foo”:。我应该做些什么更改,以便它可以单独选择双引号?您可以只匹配“+([^”]+)”+(?=:),并用$1替换它,如图所示。然而,这并不考虑任何逃逸,你可能会考虑使用JSON库的“JAN评论”。 < P>我不确定我是否正确。但是试试这个: /{"(.

我有以下特点:

{"foo":"bar"}
正则表达式的目标是在最后一个引号后跟冒号时查找周围的双引号。 在上述情况下,它应该单独找到前两个双引号,因为最后两个双引号后面跟一个冒号


我目前有以下正则表达式:
(“”+[^”]+“+:)
,它找到
“foo”:
。我应该做些什么更改,以便它可以单独选择双引号?

您可以只匹配
“+([^”]+)”+(?=:)
,并用
$1
替换它,如图所示。然而,这并不考虑任何逃逸,你可能会考虑使用JSON库的“JAN评论”。

< P>我不确定我是否正确。但是试试这个:

/{"(.*)(?:"):/

只需像这样使用一个积极的前瞻:

"([^"]+)"(?=:)

看。

我会这样做:

/\{"([^"]+)"\s*:\s*"([^"]+)"\}/g
并替换为:

{$1:"$2"}

请参见演示:

您到底想要什么输出?@Shafizadeh如果我想替换原始文本中的目标字符(在这个例子中,第一个双引号),它会给我{foo:“bar”}这闻起来是
JSON
-比如,为什么不使用一个漂亮的函数呢?@Jan,我不想说太多细节,因为这与问题无关,但我使用的JSON生成器为键名提供了双引号,我想删除它。所以你想从
{foo:“bar”}
转到
{foo:“bar”}
?为什么每个人都这么喜欢dot-star汤?
[^”]+
不是更适合这里吗?@Jan是的,但我的模式更易于替换(我认为)