mysql - 正则表达式匹配复杂子串

标签 mysql regex

我在 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/

相关文章:

mysql - 插入包含来自多个嵌套 SELECT 语句的值的 MySQL 行

php - Joomla - PHP 改变模型中的 mySQL 语句

MySQL使用左连接时重复列值

mysql - 正则表达式不适用于单/双引号

Java正则表达式替换原始字符串中的组值

php - 使用 php 和 Ajax 仅更新最近的帖子

mysql - `connect' : 可以 't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)

regex - grep 正则表达式开始于,结束于但不包含

regex - 如何编写非贪婪匹配的正则表达式?

php - Preg替换为数组中的单词