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
Répondre
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.
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. –
Aussi je veux inclure l'accès modificateur. – JymmyT
Comme ['(public | protégé | interne | privé) \ s + \ w + \ s + (?: \ W + \ (([^)] +) \) | \ w + \ (() \)) \ p {Zs} * {'] (https://regex101.com/r/iG3bQ8/3)? –
Ensuite, ajoutez un '\ s *? {' À la fin de l'expression pour faire correspondre l'espace et l'accolade? –
cela ne fonctionne pas:/ – JymmyT
Vous ne pouvez pas simplement ajouter à la fin du motif, les alternatives doivent être placées à l'intérieur d'un groupe non-capture. –