首页 > 解决方案 > 从 JSON 中提取整数或字符串的正则表达式

问题描述

我在没有 JSON 解析器的环境中工作,所以我使用正则表达式来解析一些 JSON。我要隔离的值可能是字符串或整数。

例如

条目1

{"Product_ID":455233, "Product_Name":"Entry One"}

条目2

{"Product_ID":"455233-5", "Product_Name":"Entry One"}

我一直在尝试创建一个单一的正则表达式模式来提取 Product_ID,无论它是字符串还是整数。

我可以使用环视(?<=Product_ID":")(.*?)(?=")或使用单独的模式成功提取两个结果(?<=Product_ID":)(.*?)(?=,)

但是,由于我不知道我需要提前哪一个,所以我想要一个适合所有人的尺寸。我曾尝试[^"]在该模式中使用,但我似乎无法将它拼凑起来

我希望收到 455233-5 和 455233 但目前我收到“455233-5”

标签: regex

解决方案


(?<="Product_ID"\s*:\s*"?)[^"]+(?="?\s*,),在这里 试试。


推荐阅读