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是的,但我的模式更易于替换(我认为)