Question

Je aime vraiment pouvoir utiliser = ~ et! ~ En Perl pour évaluer une chaîne à une expression régulière. Je voudrais au port cette fonctionnalité vers C #, mais il semble que, pendant que vous pouvez surcharger les opérateurs, vous ne pouvez pas créer de nouvelles.

J'envisage l'extension du type de chaîne pour fournir une méthode match () qui me permettra de passer une expression régulière pour évaluer, mais je me demande de il y a une meilleure façon.

Quelqu'un at-il une meilleure solution?

Était-ce utile?

La solution

Essayez de créer une méthode d'extension à la classe de chaîne qui agit comme un « raccourci » à Regex.Match. Quelque chose comme ceci:

public static class RegexExtensions
{
    public static bool Match(this string text, Regex re)
    {
        return Regex.Match(text, re);
    }
}

Autres conseils

Dans mon .NET prend en charge l'expérience les mêmes caractéristiques que les expressions régulières Perl, mais la syntaxe est beaucoup plus bavard, donc il faut un peu d'utilisation à.

C # ne prend pas en charge le concept de variables implicites, donc vous devez toujours fournir à la fois la chaîne d'entrée et le motif de match. En d'autres termes, il est le raccourci qui manque de .NET pas la correspondance explicite via = ~ et! ~.

Regex.Match fait la même chose que = ~ si vous voulez juste pour trouver des correspondances. Si vous voulez et à remplacer, vous devez utiliser la méthode Remplacer. Pour l'opérateur! ~, Il vous suffit d'utiliser! et le procédé de Regex pertinent.

Il faut un peu plus taper, mais vous pouvez obtenir l'effet que vous recherchez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top