Ce que vous voulez:
[LR]TRIM\([RL]TRIM\([^)]+\)\)\s*=\s*[^)]+\)*
?
Qu'est-ce que cela dit:
[LR] # Match single char, either "L" or "R"
TRIM # Match text "TRIM"
\( # Match an open parenthesis
[RL] # Match single char, either "R" or "L" (same as [LR], but easier to see intent)
TRIM # Match text "TRIM"
\( # Match an open parenthesis
[^)]+ # Match one or more of anything that isn't closing parenthesis
\)\) # Match two closing parentheses
\s* # Zero or more whitespace characters
= # Match "="
\s* # Again, optional whitespace (not req unless next bit is captured)
[^)]+ # Match one or more of anything that isn't closing parenthesis
\)* # Match zero or more closing parentheses.
Si cela est automatisé et que vous voulez savoir quelles variables en elle, vous pouvez envelopper entre parenthèses autour des parties concernées:
[LR]TRIM\([RL]TRIM\(([^)]+)\)\)\s*=\s*([^)]+)\)*
Ce qui vous donnera les première et deuxième variables dans les groupes 1 et 2 (soit \ 1 et \ 2 ou $ 1 et $ 2 selon la regex utilisée).
c'est exactement ce que je cherchais. Je veux vraiment automatiser cela et trouver le nom de la table aussi !! mais je pense que ce sera long à parcourir les fichiers que je vais devoir lire à l'envers. Donc, je vais lancer une requête sur Oracle après avoir le nom de la colonne et trouver le nom de la table. Merci pour l'aide – jason
Ouais, cela dépend s'il y a un moyen facile d'identifier de manière fiable tous les blocs de requête, puis d'exclure ceux qui ne correspondent pas à ce qui précède - je ne connais pas la syntaxe Oracle SP, mais je suppose territoire parseur pour ce genre de choses. –