У меня следующий текст:
SELECT
U_ArrObjJson(
s."Description", s."DateStart", sp.*
) as "Result"
FROM "Supplier" s
OUTER APPLY(
SELECT
U_ArrObjJson,
'U_ArrObjJson(',
' <- THE PROBLEM IS HERE
U_ArrObjJson(
p."Id", p."Description", p."Price"
) as "Products"
FROM "Products" p
WHERE p."SupplierId" = s."Id"
) sp
Что мне нужно сделать, это найти экземпляры функции U_ArrObj Json, которые не являются кавычками. В итоге я получаю следующее выражение:
(?<!\')\bU_ArrObjJson\b[\n\r\s]*[\(]+
Проблема в том, что последнее вхождение U_ArrObjJson
обрабатывается одиночной кавычкой, но между кавычкой и экземпляром имени, который я ищу, есть пробелы и новые строки for.
Это выражение, которое мне нужно использовать с do tnet Regex в моем методе:
var matches = new Regex(@"(?<!\')\bU_ArrObjJson\b[\n\r\s]*[\(]+", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant).Matches(template);
Как изменить выражение, чтобы игнорировать предшествующие пробелы?