2015-01-08 2 views
1

Я ищу текстовый файл схемы базы данных, где все хранимые процедуры, функции, триггеры и представления разделены символом «;;». Я разделяю содержимое на ";;" разделитель, а затем для каждой части, ища «СОЗДАТЬ ПРОЦЕДУРУ», «СОЗДАТЬ ФУНКЦИЮ», «СОЗДАТЬ ТРИГГЕР» или «СОЗДАТЬ ВИД». Однако эти критерии поиска не могли быть такими же совершенными, как я только что перечислил. Например, «СОЗДАТЬ ПРОЦЕДУЮ» может быть: «создать ПРОЦЕДУРУ», «создать процедуру», «СОЗДАТЬ ПРОЦЕДУЮ» и т. Д.simple C# regex example

Это выглядит как довольно простой шаблон регулярного выражения для проверки, но я новичок в регулярном выражении и борется немного. Любая помощь будет оценена по достоинству.

+0

Опубликовать код, который вы написали. – nwk

+0

Вы уже пытались использовать 'RegexOptions.IgnoreCase'? –

+0

Используйте модификатор, нечувствительный к регистру, в созданном вами регулярном выражении. – sln

ответ

2
var regex = new Regex(@"\bcreate\s+(procedure|function|view|trigger)" + 
         @"\s+(?<ObjectName>[a-z_][a-z0-9_]+)\b", 
         RegexOptions.IgnoreCase); 
+0

Мне нужно создать токен, основанный на совпадении, поэтому мне нужно различать процедуру, функцию, представление или триггер. – JimB

+0

Кроме того, он не отображался в моем вопросе, но может быть одно или несколько пробелов или вкладок между «create» и «procedure», например. – JimB

+0

Я думаю, что у меня есть это? var myRegex = new Regex (@ "create \ s * procedure", RegexOptions.IgnoreCase); – JimB