我想在mysql中查询与以下模式匹配的所有字符串。
-
,in ('true')
" and
"的子字符串不能出现在-
和in ('true')
之间。
例如:
segment-123 in ('true')
符合上述模式。
content-foo and segment in ('true')
与上述模式不匹配,因为它具有子串" and
"在-
和in ('true')
之间。
这是否可以在mysql中使用REGEXP实现?非常感谢任何帮助。
答案 0 :(得分:1)
mysql> select 'segment-123 in (\'true\')'
regexp '[^[:space:]]+-[^[:space:]]+ in \\(\'true\'\\)' as matched;
+---------+
| matched |
+---------+
| 1 |
+---------+
mysql> select 'content-foo and segment in (\'true\')'
regexp '[^[:space:]]+-[^[:space:]]+ in \\(\'true\'\\)' as matched;
+---------+
| matched |
+---------+
| 0 |
+---------+
有关MySQL中正则表达式语法的更多文档,请参阅https://dev.mysql.com/doc/refman/8.0/en/regexp.html#regexp-syntax。