使用SQLServer的RegExp功能,我需要找到所有不以字母'M'开头的字符串,但是[^M]%
似乎有效,所以它搜索不以'M'开头的字符串,但字符串仍然需要至少有一个字符,所以这个模式不会返回空字符串!!
是否有[^M]%
模式检查ZERO或一个字符?
P.S。在我的情况下使用NOT LIKE
不是一个选项,除了正则表达式模式之外,对where子句也没有任何修改。
答案 0 :(得分:1)
您可以设置条件OR MyField = ''
。您正在使用SQL Server 2012,对吗?通过查看帮助页面,我看不到正则表达式的任何“或”条件http://msdn.microsoft.com/en-us/library/ms179859.aspx
答案 1 :(得分:1)
使[^M]%
匹配''
的一种方法是在输入中附加一个不是M
的字符;
where Fld + '?' like '[^M]%'
答案 2 :(得分:1)
对于纯正则表达式,您必须使用CLR用户定义的函数。
使用正则表达式支持,您可以搜索\b|[^M].*
形式的那些,其中一个空格或非M字符,后跟零个或多个字符。
http://msdn.microsoft.com/en-us/magazine/cc163473.aspx可能对您有帮助。