所以JSON就像:
"foo": {
"points": 23.67
},
我想要一个匹配23.67
的正则表达式。
我已经尝试了\"foo\":{\"points\":([^}"]*)
,但它不起作用。
有多行包含"points":
,因此只有\"points\":([^}"]*)
无效。
答案 0 :(得分:0)
答案 1 :(得分:0)
您的解决方案没有考虑到一些细节:
"foo":
和{
之间可以有空格。{
之后,可以有换行符和空格。"points":
之后还可以有空格。所以,包括上面遗漏的细节,并考虑到\s
匹配换行符,整个正则表达式可以如下:
\"foo\":\s*{\s*\"points\":\s*([^}"]*)\s*}
实际上,您的捕获组可能会受到更严格的限制"。
由于要捕获的文本仅包含数字和点,
它可以写成:[\d\.]+
。
请注意,我将*
更改为+
,因为内容不能为空。