Регулярное выражение для серийного номера в T-SQL - PullRequest
2 голосов
/ 21 октября 2010

Я новичок в регулярных выражениях и в настоящее время пытаюсь найти простое регулярное выражение, которое ищет серийный номер в следующем формате: 0217103200XX , где "XX" может быть цифрой,Я использую SQL Server Management Studio для передачи регулярного выражения в качестве параметра в хранимой процедуре.Я не уверен, что синтаксис отличается от других языков программирования.У меня есть следующее регулярное выражение в качестве ссылки: (?: 2328 \ d \ d (?: 0 [1-9] | [1-4] \ d | 5 [0-3]) \ d {4})

Любые предложения приветствуются.

ОБНОВЛЕНИЕ: Я на самом деле использую это в запросе SQL, а не в приложении .Net.Формат выглядит следующим образом:

USE [MyDB]

EXEC MyStoredProcedure @regex = '(?:2328\d\d(?:0[1-9]|[1-4]\d|5[0-3])\d{4})'

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Использовать LIKE: в SQL Server нет собственного RegEx

LIKE '0217103200[0-9][0-9]'
0 голосов
/ 21 октября 2010

Как указали OMG Ponies - SQL Server изначально не поддерживает регулярные выражения (необходимо использовать SQLCLR для 2005+ или xp_cre).

Если я понял ваш вопрос, вы можете использовать PATINDEX для поискасерийные номера

Select *
From dbo.MyTable
Where PATINDEX('0217103200[0-9][0-9]', SerialNumberColumn) > 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...