正则表达式匹配所有字符序列

zpgglvta  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(280)

我试图提取json消息的一部分,但未能编写正确的regex。
最大的问题是我为之编写的应用程序(impala-big data query engine)包含一个bug,它阻止了使用 ? 所以我需要一个不同的解决方案。
例子

{"postcode":"ABCDEF","forename":"James","id":"{12}","surname":"Townsend"},
{"postcode":"HIJKLM","forename":"Toby","id":"{34}","surname":"Taylor"},
{"surname":"Reilly","postcode":"NOPQRS","forename":"Mike","id":"{56}"}

数据将以这种格式在一个字符串中(没有换行符),但是在每个“部分”中,数据可以是任何顺序。
我需要使用regex来结束消息中名为“toby”的部分

{"postcode":"HIJKLM","forename":"Toby","id":"{34}","surname":"Taylor"}

目前我有

{[^{]*"forename":"Toby"[^}]*}

但是这不起作用,我需要它来匹配 {" 以及 "} 作为起点和终点。
谁能给我一些建议吗?
谢谢

jbose2ul

jbose2ul1#

避开前面/后面的花括号:

\{[^{]*"forename":"Toby"([^}]|\}(?="))*\}(?!")

观看现场演示。

相关问题