Maison >développement back-end >C++ >Pourquoi mes délimiteurs d'expressions régulières ne fonctionnent-ils pas en C# ?
Comprendre la syntaxe des expressions régulières en C#
Lorsque vous travaillez avec des expressions régulières en C#, vous pouvez rencontrer des problèmes si vous essayez d'utiliser des délimiteurs tels que des barres obliques (/
), qui sont courants dans des langages tels que PHP ou JavaScript. Examinons pourquoi cela ne fonctionne pas en C# et comment implémenter correctement les expressions régulières.
Le problème vient de la tentative d'utilisation d'une expression régulière comme celle-ci (incorrecte) :
"name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487\nname = Regex.Replace(name, @"/\W/g", "")"
Ce code tente de supprimer "/", "-" et "." en utilisant des délimiteurs. Cependant, C# gère les expressions régulières différemment. Les délimiteurs ne sont pas obligatoires et, en fait, provoqueront des erreurs.
La bonne approche en C#
Pour définir une expression régulière en C#, utilisez le symbole @
pour créer une chaîne littérale textuelle. Cela empêche C# d'interpréter les séquences d'échappement dans la chaîne. Vous devez également échapper correctement les caractères spéciaux dans l'expression régulière elle-même.
Le code corrigé pour supprimer les caractères non alphanumériques (W
) serait :
<code class="language-csharp">name = Regex.Replace(name, @"\W", "");</code>
Cette seule ligne de code remplace efficacement tous les caractères non alphanumériques de la chaîne name
par une chaîne vide, obtenant ainsi le résultat souhaité sans avoir besoin de délimiteurs. N'oubliez pas que W
est la classe de caractères regex correspondant à tout caractère non alphanumérique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!