使用POSIX.2正则表达式提取JSON子字符串

时间:2016-10-25 20:03:57

标签: json regex posix

我需要使用POSIX.2扩展正则表达式(Linux上的man 7 regex)从JSON字符串中提取字段值:例如。来自{"field":"value"}

当一个简单的/"field":"(.*)"/可以解决这个问题时,我常常使用Perl风格的正则表达式,但POSIX正则表达式似乎没有表达捕获组的概念。

有没有诀窍来制作一个与JSON值完全匹配的POSIX模式?

1 个答案:

答案 0 :(得分:0)

在POSIX"基本"正则表达式,捕获组用\(...\)表示,所以你想要的是:

"field":"\([^"]*\)"

请注意,您必须使用[^"]*来防止模式跨多个字符串匹配(POSIX正则表达式不具备非贪婪的量词)。

"延伸"正则表达式,你不需要反斜杠。但您仍然需要使用[^"]代替.来防止匹配过多。