我有一段文字,想找到所有的前缀:前缀RM-EC + 3位数字。例如RM-EC001,RM-EC099或RM-EC100。但是不应该找到RM-EC99。RM-EC001的正则表达式(在sql-server中)
谢谢。
我有一段文字,想找到所有的前缀:前缀RM-EC + 3位数字。例如RM-EC001,RM-EC099或RM-EC100。但是不应该找到RM-EC99。RM-EC001的正则表达式(在sql-server中)
谢谢。
试试这个:
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]'
您可能需要前导和尾随通配符卡'以及'%RM-EC [0-9] [0-9] [0-9]%'',除非它必须完全匹配。 – 2010-09-27 13:41:35
好点@马丁 – 2010-09-27 13:42:38
正则表达式应该是这样的:
RM-EC[0-9]{3}
根据正则表达式实现,还可以使用\d
而不是[0-9]
。
我知道你问一个正则表达式,但因为你还标记了一个问题,SQL Server中,我会指出,这也将工作:
WHERE YourColumn LIKE 'RM-EC[0-9][0-9][0-9]'
什么语言/正则表达式库您使用? – Gumbo 2010-09-27 13:31:57
我想使用SQL Server中RegexLib库中的RegexMatch:http://justgeeks.blogspot.com/2008/08/adding-regular-expressions-regex-to-sql.html – 2010-09-27 13:35:22