2010-09-27 51 views
1

我有一段文字,想找到所有的前缀:前缀RM-EC + 3位数字。例如RM-EC001,RM-EC099RM-EC100。但是不应该找到RM-EC99。RM-EC001的正则表达式(在sql-server中)

谢谢。

+0

什么语言/正则表达式库您使用? – Gumbo 2010-09-27 13:31:57

+0

我想使用SQL Server中RegexLib库中的RegexMatch:http://justgeeks.blogspot.com/2008/08/adding-regular-expressions-regex-to-sql.html – 2010-09-27 13:35:22

回答

4

试试这个:

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]' 
+1

您可能需要前导和尾随通配符卡'以及'%RM-EC [0-9] [0-9] [0-9]%'',除非它必须完全匹配。 – 2010-09-27 13:41:35

+0

好点@马丁 – 2010-09-27 13:42:38

1

正则表达式应该是这样的:

RM-EC[0-9]{3} 

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

1

我知道你问一个正则表达式,但因为你还标记了一个问题,SQL Server中,我会指出,这也将工作:

WHERE YourColumn LIKE 'RM-EC[0-9][0-9][0-9]' 
相关问题