2015-12-28 3 views
0

Utilisation de cette expression rationnelle pour trouver des méthodes de C#. \ w + (([^)] +)) | \ w + (()) avec ceci j'obtiens le nom et les paramètres de la méthode, j'ai besoin d'inclure le caractère "{" pour être sûr que c'est la définition d'une méthode. View ImageInclure des accolades dans l'expression régulière pour trouver C# Méthodes Définition

+0

Ensuite, ajoutez un '\ s *? {' À la fin de l'expression pour faire correspondre l'espace et l'accolade? –

+0

cela ne fonctionne pas:/ – JymmyT

+0

Vous ne pouvez pas simplement ajouter à la fin du motif, les alternatives doivent être placées à l'intérieur d'un groupe non-capture. –

Répondre

2

Vous pouvez placer le motif dans un groupe non-capture ((?:...)), puis ajouter {:

(?:\w+\(([^)]+)\)|\w+\(()\))[\p{Zs}\t]*{ 
^^^      ^  ^

Voir demo

Notez que [\p{Zs}\t]* matchs 0 ou plus horizontaux symboles blancs dans. NET.

Notez également que { ne doit pas être échappé dans un regex .NET.

+0

Notez que vous n'avez pas vraiment besoin d'utiliser '()' pour capturer une chaîne vide. Je l'ai gardé juste au cas où vous l'utilisez quelque part dans votre code. –

+0

Aussi je veux inclure l'accès modificateur. – JymmyT

+0

Comme ['(public | protégé | interne | privé) \ s + \ w + \ s + (?: \ W + \ (([^)] +) \) | \ w + \ (() \)) \ p {Zs} * {'] (https://regex101.com/r/iG3bQ8/3)? –