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