utilisant des extensions fournies par .net, on peut trouver des groupes de parenthèses en utilisant quelque chose comme ceci:Comment trouver une virgule qui n'est pas entre parenthèses dans une expression régulière .net?
^(\w+)\(((?>[^()]+|\((?<D>)|\)(?<-D>))*(?(D)(?!)))\)(.*)$
Cela correspondra à la suivante:
Func(innerfunction(arg)).DoSomething()
avec les groupes suivants:
- Groupe 1: Func
- Groupe 2: fonction interne (arg)
- Groupe 3: .DoSomething()
Ma question est, comment puis-je correspondre à des virgules, en prenant en compte si elles sont ou non à l'intérieur d'un groupe entre parenthèses? Par exemple, une expression rationnelle pour évaluer:
Func(innerFunction(arg1, arg2), arg3).DoSomething()
céderais:
- Groupe 1: Func
- Groupe 2: innerFunction (arg1, arg2)
- Groupe 3: arg3
- Groupe 4: .DoSomething()
Merci.
Voici un exemple de ce qui ne correspond pas: "func1 ((arg1), arg2), func2 (arg3) .property" get est divisé en "func1 ((arg1)" et "arg2), func2 (arg3) .property "(accodring à). –
Gumbo
Et maintenant? ;-) –
Qu'en est-il de quelque chose comme ceci: "func1 (") ", arg1), func2(). Property"? – Gumbo