SQL中的正则表达式在LIKE运算符中

时间:2015-05-23 20:56:15

标签: sql regex tsql

我尝试创建一个语句来检查字符串是否像常规字符串一样。

DECLARE @RuleName NVARCHAR(MAX) = 'Up to 6 hours'

IF @RuleName LIKE  'Up to [0-9]+ hours'  

此语句需要在任何情况下返回true,“to”之后的数字是一个或多个数字。 例如: '最多32小时','最多456小时','最多3小时' 所有这些范例都必须成真。 出于某种原因,它只对我有用而没有+号

IF @RuleName LIKE  'Up to [0-9] hours' 

但是只有当只有一位数时表达式才会生效。

如何修复[0-9] +?

感谢

1 个答案:

答案 0 :(得分:1)

Transact-SQL LIKE patterns中,不支持+量词。

您可以使用%符号:

  

%任何零个或多个字符的字符串。

IF @RuleName LIKE  'Up to [0-9]% hours'