2010-09-27 58 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]' 
相關問題