Encuentra un patrón que coincida con 'a', ignorando que 'a' que se encuentra dentro de 'b' y 'c'
Necesita una expresión compuesta para
" from" such that " from" is not within parenthesis
(ignorando los que están entre paréntesis) aquía=" from"; b="("; and c=")";
El patrón más cercano (pero no válido) que podría escribir es
string pat = @"^((?!\(.* from.*\)).)* from((?!\(.* from.*\)).)*$";
mi expresión niega si alguna "de" está presente entre paréntesis, pero quiero ignorar estrictamente "de"
Los partidos deben encontrarse en:
1: " from" 2:select field1 from t1 (select field1 from t1) ---- 1 time in both
3: select field1 from t1 (select field1 from t1)select field1 from t1 ---2 times
Cadenas que no contienen coincidencias: (porque quiero ignorar el "desde" entre paréntesis)
1: select field1 no_f_rom_OutOf_Parenthesis t1 (select field1 from t1)
2: (select field1 from t1) 3: "" (Empty String) 4. No word as form
0 times in all four strings
Material relevante: (no es necesario leer mucho)
El enlace más útil que se encuentra más cerca de mi pregunta que dice cómo coincidir con 'patrón' pero no 'regular' ha sido una respuesta de stanav el 31 de julio de 2009, a las 08:05 a.m. en el siguiente enlace ...
http://www.vbforums.com/archive/index.php/t-578417.html
También:Regex en C # que contiene "esto" pero no "que
También:¿Expresión regular para hacer coincidir una línea que no contiene una palabra?
He estudiado / buscado aproximadamente una semana, pero aún así es complejo para mí :)