检查变量是否符合字符串格式

时间:2014-06-04 20:33:39

标签: tsql sql-server-2012

我需要一种方法来检查变量的字符串内容是否符合某种格式。我需要的格式的一个例子是52M-14Jun04-1,即11A-11Aaa11-1。

偶尔也有字符串代替第一个字母包含星号,即11 * 11Aaa11-1。

非常感谢, 延

1 个答案:

答案 0 :(得分:1)

以下是我使用LIKE提出的建议:

DECLARE @Input varchar(20) = '52M-14Jun04-1'
DECLARE @Result varchar(20)

SELECT @Result =
    (CASE WHEN 
        @Input LIKE '[0-9][0-9][A-Z*]-[0-9][0-9][A-Z][a-z][a-z][0-9][0-9]-[0-9]'
     THEN 
         'Matches'
     ELSE
         'Does not match'
     END)

对模式的解释:

  • [0-9] 0到9之间的任何数字
  • [A-Z*]任何字符A到Z(大写)或*
  • -连字符
  • [a-z]任何字符a到z(小写)