代码之家  ›  专栏  ›  技术社区  ›  Tim Schmelter

RM-EC001的regex(在SQL Server中)

  •  1
  • Tim Schmelter  · 技术社区  · 14 年前

    我有一个文本,想查找所有出现的:prefix RM-EC+3位数字 . 例如 RM-EC001型 , RM-EC099型 RM-EC100型 . 但找不到RM-EC99。

    谢谢您。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Rubens Farias    14 年前

    试试这个:

    RM\-EC\d{3}
    

    在使用SQL Server时,我发现您不能使用限定符:

    CREATE TABLE #test (value varchar(10))
    INSERT INTO #test VALUES ('RM-EC001')
    INSERT INTO #test VALUES ('RM-EC099')
    INSERT INTO #test VALUES ('RM-EC100')
    INSERT INTO #test VALUES ('RM-EC99' )
    SELECT * FROM #test WHERE value LIKE 'RM-EC[0-9][0-9][0-9]'
    
        2
  •  1
  •   Gumbo    14 年前

    正则表达式应该如下所示:

    RM-EC[0-9]{3}
    

    根据正则表达式的实现,还可以使用 \d 而不是 [0-9] .

        3
  •  1
  •   Joe Stefanelli    14 年前

    我知道您要求一个regex,但是由于您还将这个问题标记为SQL Server,所以我将指出这也可以工作:

    WHERE YourColumn LIKE 'RM-EC[0-9][0-9][0-9]'