好的,所以我想要获取以数字开头的结果,我有这个正则表达式来查找数字条目
SELECT * FROM dbname WHERE subject REGEXP '^[0-9]'
但是,如果我想要它找到数字和所有特殊字符条目,我该怎么做?
因此,例如,如果主题是“:subject”或“.subject”或“* subject”等,它会发现它们以及“1subject”或“2subject”等等...... 基本上任何东西都是从一个不同于aplhabetical字符的东西开始的。
感谢。
答案 0 :(得分:4)
使用“^[^a-zA-Z]
”作为正则表达式
这意味着什么
首先^
是“锚定到行首”
[
是角色类的开头
^
表示否定此类 - 所以匹配其中的字符的反面
a-z
是小写英文字母
A-Z
是大写的英文字母
]
是字符类的结尾
由于班级是自己的,它代表一个角色
所以正则表达式意味着“匹配非a-z或A-Z的行开头的任何字符” 在SQL表达式的上下文中,这应该匹配任何不以a-z或A-Z
开头的结果答案 1 :(得分:0)
您不需要使用正则表达式。您想要找到以A-Z或a-z开头的主题。
WHERE (subject >= 'A' and subject < '[') OR (subject >= 'a' and subject < '{');
[
是Z
之后的下一个字符,而{
是z
之后的下一个字符。
这将让优化器使用您拥有的subject
上的任何索引。