1

好的,所以我想获取以数字开头的结果,并且我有这个正则表达式用于仅查找数字条目

SELECT * FROM dbname WHERE subject REGEXP '^[0-9]'

但是如果我想让它找到数字和所有特殊字符条目,我该怎么做呢?

因此,例如,如果一个主题是“:主题”或“.subject”或“*主题”等,它会找到它们以及“1主题”或“2主题”等等......基本上任何东西都不是以其他东西开头的aplhabetical 字符。

谢谢。

4

2 回答 2

4

使用 ' ^[^a-zA-Z]' 作为正则表达式

这意味着什么

首先^是“锚到行首”

[是字符类的开始

^在字符类中意味着否定这个类 - 所以匹配它的相反字符

a-z都是小写英文字母

A-Z都是大写英文字母

]是字符类的结尾

由于类是独立的,它代表一个字符

因此,正则表达式的意思是“匹配行首的任何不是 az 或 AZ 的字符” 在 SQL 表达式的上下文中,这应该匹配任何不以 az 或 AZ 开头的结果

于 2013-05-16T14:43:28.803 回答
0

您不需要使用正则表达式。您想查找以 AZ 或 az 开头的主题。

WHERE (subject >= 'A' and subject < '[') OR (subject >= 'a' and subject < '{');

[是 之后的下一个字符Z并且{是 之后的下一个字符z

这将使优化器使用subject您拥有的任何索引。

于 2013-05-16T17:16:18.447 回答