我有几页JSON可以像这样搜索:
"company": "chocolate factory"
"position": "founder"
"company": "chocolate packagers"
"position": "packager"
"company": "chocolate shop"
"position": "clerk"
我想只在第一次出现" position"时才匹配创始人并没有跟进。前面的示例不匹配,但以下内容匹配。
"company": "chocolate factory"
"position": "taster"
"company": "chocolate packagers"
"position": "founder"
"company": "chocolate shop"
"position": "clerk"
这看起来像是第一次出现" position"
("position": ")?
我认为这应该匹配第一次出现的"位置"只有在"创始人"
之后没有跟着它("position": ")?(?![^"]*founder)
我已经在regexr.com上尝试了它,但它似乎无法正常工作。
这样做的正确方法是什么?
编辑:所以为了澄清,我只能在网络应用上使用搜索框。我猜测它是一个javascript正则表达式,但我无法确切地告诉我们使用了哪些标志(这会让事情变得困难)......但我认为它是一个正在进行正则表达式搜索的SQL数据库如果这是有道理的。
我想只匹配第一次出现" position"
(?:"position": ")?
但前提是"创始人"
(?:"position": ")?(?![^"]*founder)
或
(?:"position": "(?![^"]*founder))?
这种似乎适用于测试网站,但它似乎并不适用于网络应用。由于我不了解后端,我可能不会想出这个。
编辑:我发现了问题。这是postgresql正则表达式 - 转义略有不同,看起来它的搜索方式也有点不同。基本上,我不认为我想要的东西会起作用。
答案 0 :(得分:0)
这应该符合您的要求。
^("(?!position).+?": ".+?"\n)+"position": "(?!founder)