我需要使用POSIX.2扩展正则表达式(Linux上的man 7 regex
)从JSON字符串中提取字段值:例如。来自{"field":"value"}
当一个简单的/"field":"(.*)"/
可以解决这个问题时,我常常使用Perl风格的正则表达式,但POSIX正则表达式似乎没有表达捕获组的概念。
有没有诀窍来制作一个与JSON值完全匹配的POSIX模式?
答案 0 :(得分:0)
在POSIX"基本"正则表达式,捕获组用\(...\)
表示,所以你想要的是:
"field":"\([^"]*\)"
请注意,您必须使用[^"]*
来防止模式跨多个字符串匹配(POSIX正则表达式不具备非贪婪的量词)。
"延伸"正则表达式,你不需要反斜杠。但您仍然需要使用[^"]
代替.
来防止匹配过多。