使用 POSIX.2 正则表达式提取 JSON 子字符串
Extracting a JSON substring with POSIX.2 regex
我需要使用 POSIX.2 扩展正则表达式(Linux 上的 man 7 regex
)从 JSON 字符串中提取字段值:例如。来自 {"field":"value"}
我习惯于使用 Perl 风格的正则表达式,而简单的 /"field":"(.*)"/
就可以解决问题,但 POSIX 正则表达式似乎没有表达捕获组的概念。
是否有技巧可以制作一个 POSIX 模式来精确匹配 JSON 值?
在POSIX"basic"正则表达式中,捕获组用\(...\)
表示,所以你要的是:
"field":"\([^"]*\)"
请注意,您必须使用 [^"]*
来防止模式匹配多个字符串(POSIX 正则表达式没有非贪婪量词)。
在 "extended" 正则表达式中,您不需要反斜杠。但是你仍然需要使用 [^"]
而不是 .
来避免匹配太多。
我需要使用 POSIX.2 扩展正则表达式(Linux 上的 man 7 regex
)从 JSON 字符串中提取字段值:例如。来自 {"field":"value"}
我习惯于使用 Perl 风格的正则表达式,而简单的 /"field":"(.*)"/
就可以解决问题,但 POSIX 正则表达式似乎没有表达捕获组的概念。
是否有技巧可以制作一个 POSIX 模式来精确匹配 JSON 值?
在POSIX"basic"正则表达式中,捕获组用\(...\)
表示,所以你要的是:
"field":"\([^"]*\)"
请注意,您必须使用 [^"]*
来防止模式匹配多个字符串(POSIX 正则表达式没有非贪婪量词)。
在 "extended" 正则表达式中,您不需要反斜杠。但是你仍然需要使用 [^"]
而不是 .
来避免匹配太多。