【发布时间】:2018-03-24 14:58:58
【问题描述】:
我必须在列值匹配的表中找到特定列的所有值,例如 [name]
我不应该得到类似于 [a]+[b] 或 [a]>[b] 或 [a]%[b]=[c] 的值
所以我基本上不需要除了方括号和分数之外的包含特殊字符的列值
示例:应返回 [test_123]。
我试过了
select * from table_name where column_name REGEXP '^[[][^+-></%]';
这只是想看看 [ 之后是否有任何特殊字符,但是如何查看整个列值中是否有任何特殊字符,我们是否应该使用反斜杠来定义 MySQL 中的特殊字符?
我在https://regexr.com/ 中尝试过,我已经获得了所需的正则表达式
(\[)\w+[^\+\=\/\*\%\^\!](\])
但我不能在 MySQL 中做同样的事情
【问题讨论】:
-
请提供一些应该返回的字符串,以及一些不应该返回的字符串。例如,我不清楚方括号是字符串的一部分还是元信息的一部分。并且是
a文字或代表任何单个字母或代表任何字母字符串或字母数字字符串。以及下划线是否包含在“字母数字”中。等等。