正则表达式在行情之间摆脱连字符

时间:2016-06-20 14:24:03

标签: json regex

我从一个设备返回一个json字符串,该字符串在defintion名称中有连字符,我想删除它.​​.....

目前我有

Dim wsRawData as Worksheet
Set wsRawData = Worksheets("Data_raw")

With wsRawData

    Dim lNextRow as Long
    lNextRow = .Range("B" & .Rows.Count).End(xlUp).Offset(1).Row

    .Cells(lNextRow, 2).Value = RM
    .Cells(lNextRow, 3).Value = NameCo
    .Cells(lNextRow, 4).Value = Pays

    '... and so on

End With

但是这样可以获得“”中的所有内容:我只想要那里的连字符,而不是所有文本。我知道我很接近只是遇到麻烦,因为正则表达式总是让我感到困惑。下面我想纠正序列号到序列号但不是值-2 ....帮助!

\"(.+?)\":

1 个答案:

答案 0 :(得分:1)

你可以匹配

/"([^"]*)-([^"]*)":/

然后只用两个子匹配替换。 见http://www.regexpal.com/?fam=95143

这是应该有效的js代码:

json = json.replace(/"([^"]*)-([^"]*)":/g,'"$1$2"');

这是另一个版本,使用前瞻:

json = json.replace(/-(?=[^"]*":)/g,"");

这假设在结束":

之间永远不会有空格