我在mysql中存储了一个json,我想使用regex查找匹配项。我试图通过使用regexp而不是like构建一个查询来实现这一点。
{"type":"4","Record channels HDCVI":{"1":"4","3":"16"},
"Supported standarts HDCVI DVR":{"0":"HDCVI","2":"IP","3":"AHD","4":"Analog"},
"Record resolution HDCVI DVR":{"1":"FullHD 1080p"},
"HDD amount":{"1":"2","2":"4"},
"Specs HDCVI DVR":{"0":"2x HDMI","1":"TV-out","2":"Videoanalytics","3":"eSATA","5":"RS-485"}}
例如,我需要用4个记录通道hdcvi获取所有记录。
我的想法是寻找这样的子串:
"Record channels HDCVI":{" ... :"4" ... "}
这里应该有占位符,而不是三个点,就像任何数量的字符一样,但是这个表达式应该以第一个匹配的结束方括号结束。
这将在hdd amount部分下选择直到最后4“}的子串。我想不通。
/Record channels HDCVI.+"4"}/g
2条答案
按热度按时间qjp7pelc1#
你应该可以这样做:
然而,我无法想象它在很多记录中会特别快。
不管怎样,重要的是
{[^}]*"4"
,分解为:如果右大括号出现在
"4"
那图案就不匹配了。qf9go6mv2#
您应该这样做:
/"Record channels HDCVI:{[^}]+:"4"/g