SQL Server Regex空字符串匹配

时间:2013-03-07 11:21:48

标签: sql-server regex

使用SQLServer的RegExp功能,我需要找到所有不以字母'M'开头的字符串,但是[^M]%似乎有效,所以它搜索不以'M'开头的字符串,但字符串仍然需要至少有一个字符,所以这个模式不会返回空字符串!!

是否有[^M]%模式检查ZERO或一个字符?

P.S。在我的情况下使用NOT LIKE不是一个选项,除了正则表达式模式之外,对where子句也没有任何修改。

3 个答案:

答案 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可能对您有帮助。