我在 MySQL 中存储了一个 json,我想使用正则表达式查找匹配项。我试图通过使用 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个记录 channel HDCVI的记录。
所以,我的想法是寻找这样的子字符串:
"Record channels HDCVI":{" ... :"4" ... "}
而不是三个点,应该有占位符,比如任意数量的任何字符,但是这个表达式应该在第一次匹配结束大括号时停止。
这会选择 HDD 数量部分下直到最后 4"} 的子字符串。无法弄清楚。
/Record channels HDCVI.+"4"}/g
最佳答案
你应该这样做:
/"录制 channel HDCVI:{[^}]+:"4"/g
关于mysql - 正则表达式匹配复杂子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50451935/