Я создал CLR в базе данных SQL Server 2005. Это простая пользовательская функция с регулярным выражением, которая проверяет, существует ли шаблон в строке, которую я передаю в функцию.
Код точечной сети, который я использую в CLR, показан ниже:
Return System.Text.RegularExpressions.Regex.IsMatch("Input", "pattern")
Возвращает битовое значение 1, если совпадение найдено.
Шаблон, который я использую:
+(Create|Alter) +(Proc|Procedure) +
Что я хочу сделать, так это найти любые случаи «создать или изменить» «процедуру или процедуру» независимо от случая. Как я могу заставить выражение игнорировать регистр?
Я пытался
/ +(Create|Alter) +(Proc|Procedure) +/i
но это не работает.
РЕДАКТИРОВАТЬ: Я смотрел в Интернете и использовал различные предложения. Ничего из этого не сработало, или я сделал их неправильно. Если бы кто-то мог дать мне образец, который будет игнорировать случай, который был бы очень признателен!
Ответ:
То, что я пытался достичь, было регулярным выражением, которое игнорирует регистр. У Dot Net есть параметры, которые можно передать, чтобы установить регистр игнорирования, однако нахождение в CLR означает, что у меня нет возможности передавать параметры в функцию.
Шаблон, который достигает этого: (? I) + (Create | Alter) + (Proc | Процедура) +