Помогите с регулярным выражением ;-)
От: Win32nipuh  
Дата: 25.04.06 06:50
Оценка:
Задача:
дана строка со скриптом хранимой процедуры в T-SQL, нужно в ней найти AS и заменить на WITH ENCRYPTION AS
Т.е. скрипт создает процедуры, а нужно их создать зашифрованными.

Вот есть такая функция
public static void ProcessProcedure(ref String scr)
{
Regex reg = new Regex("create(\\s*)procedure[\\S\\s.]*\\sas");
Match m = reg.Match(scr);
if(m.Success)
{
scr = scr.Replace(" as","as");
scr = scr.Replace("\nas","\nwith encryption as");
}
}

Она все делает.
Но здесь одна проблема: она не учитывает комментарии, т.е. если перед реальным AS будет стоять

CREATE PROCEDURE ....
/*
не забыть AS
*/

AS

или

--не забыть AS

AS



То сработает замена в комментарии.
Как обарботать комментарий и заменить нужное?

Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.