игнорировать регистр с регулярным выражением - PullRequest
3 голосов
/ 09 октября 2009

Я создал 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 | Процедура) +

Ответы [ 3 ]

3 голосов
/ 09 октября 2009

попробуйте это.

Return System.Text.RegularExpressions.Regex.IsMatch("input", @".*(Create|Alter).+(Proc|Procedure).+", RegexOptions.IgnoreCase);

Я бы порекомендовал установить бесплатное программное обеспечение Expresso для проверки ваших регулярных выражений и создания кода .Net / c # для поиска, замены и т. Д.

3 голосов
/ 09 октября 2009

Вы можете использовать встроенный модификатор «без учета регистра» (?i):

(?i) +(Create|Alter) +(Proc|Procedure) +
2 голосов
/ 09 октября 2009

Попробуйте использовать:

Regex regex = new Regex(
    regexStringHere,
    RegexOptions.IgnoreCase);

return regex.IsMatch(inputStringHere);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...