我有这样的输入(JSON 格式)
{"location":[{"id":"1BCDEFGHIJKLM","somename":"abcd","fewname":"xyzland","sid":"","sname":"","regionname ":"Zee-Whole","type":"some","siteCode":"","someCode":"ROTXY","fewCode":"NL","pCode":"ROTXY","someid":"1BCDEFGHIJKLM","fewid":"GIC8"},{"id":"7823XYZHMOPRE","somename":"abcd Junction","fewname":"美国","sid":"","sname ":"","regionname":"New York","type":"some","siteCode":"","someCode":"USRTJ","fewCode":"US","pCode":"USNWK","someid":"7823XYZHMOPRE","fewid":"7823XYZLMOPRE"},{"id":"799XYZHMOPRE","somename":"abcd-Maasvlakte","fewname":"xyzland","sid":"","sname":"","regionname":"Zee-Whole","type":"some","siteCode":"","someCode":"XYROT","fewCode":"NL ","pCode":"","someid":"799XYZHMOPRE","fewid":"OIUOWER348534"}]}
现在,我想使用正则表达式获取第一个“id”值,即 1BCDEFGHIJKLM。我已经设法使用
[^({"location":[?{"id":")].{0,12} 但这是不完整的。有人可以帮助我如何忽略值 1BCDEFGHIJKLM< 之后的其余行/p>
最佳答案
Regex 不是执行此操作的方法。无论您使用什么平台,它都必须有一个 JSON 解析器。 这将是您最好的无差错解决方案。
假设您必须使用正则表达式,您可以使用 "id":"(.*?)"
获取所有 id,并获取第一个匹配项。
我找到了以下 article ,这可能对您有所帮助。
关于regex - 正则表达式 : how to ignore rest of the line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3871906/