正则表达式在已知字符串之前但在重复字符串之后的第一个实例

时间:2016-06-10 19:16:57

标签: regex vbscript

我正在研究一个我无法破解的正则表达式问题。我有一个字符串列表,看起来像这样:

"Some Leading Words, "ind": "ind1", "primary":true, some more words, "ind": "ind2", "primary":false"

我想撤回主要指标。在这种情况下,那将是ind1。这可以通过以下方式完成:

\bind\b(.*?)"primary":true

或者至少这个接近......我仍然有“ind”和“primary:true”部分,但我实际上是在使用VBScript正则表达式5.5库在Excel中执行此操作,因此我可以{{1} } {,RIGHTLEFTMID我知道我不想包含的内容。

我遇到的麻烦是主要指标在字符串中排在第二位。

SEARCH

在这一篇文章中,我最终得到了第一个"Some Leading Words, "ind": "ind1", "primary":false, some more words, "ind": "ind2", "primary":trueind之间的所有内容,这比我想要的更多。

(仅供参考:我从NPI API site解析JSON,如果上下文有帮助,需要返回每个医生的主要分类法。)

1 个答案:

答案 0 :(得分:1)

所以,这是一个想法。在"primary":true之前加上逗号,然后将点.更改为允许除逗号外的任何内容的字符类。

\bind\b([^,]*?), "primary":true

那会给你你想要的东西。

但是,如果你不想要额外的东西和你的价值,你可以使用这样的东西:

\bind\b": "([^,]*?)", "primary":true

Here is a demo