Jim*_*Jim 7 regex sql-server sql-like
在t-sql中,有没有办法在类似的语句中进行模式匹配,这样你就可以搜索给定集合中的1个或多个字符?
具体来说,我试图想出一个LIKE语句,它将返回以1个或更多字母开头并以1个或更多数字结尾的字符串.
所以这些字符串应匹配:
这些字符串不应该匹配:
我知道你可以使用%通配符匹配0或更多字符的字符串,你可以使用方括号[]来匹配给定集合中的单个字符.但有没有办法将这些组合起来,以便我可以匹配给定集合中的1个或多个字符?
像这样的东西会很好,但当然不起作用:
WHERE ColumnName LIKE '[%a-z][%0-9]'
Run Code Online (Sandbox Code Playgroud)
有谁知道这个问题的解决方案?或者它在SQL Server中是不可能的?
谢谢,吉姆
像模式匹配非常有限,它不允许正常的正则表达式.
详情请见此处.
根据您的需要使用:
WHERE ColumnName LIKE '[a-z]%[0-9]'
Run Code Online (Sandbox Code Playgroud)
这将匹配任何字母后跟任何字母,后跟一个数字.SQL将强制字母和数字位于字符串的两端,因为在[]匹配集之前或之后没有模式或文字字符.