2013-03-13 3 views
1

Quelqu'un peut-il expliquer comment faire fonctionner cette regex? Je suis en train de prendre cette chaîne:Regex Remplacer par une barre oblique

"Test0/1" 

et la transformer en:

"Test0\/1" 

J'utilise, mais il ne fonctionne pas:

var test = Regex.Replace("Test0/1", @"/", @"\/"); 

Il continue à donner moi

"Test0\\/1" 

Ensuite, je veux prendre les résultats de la chaîne et le mettre dans une déclaration Regex comme ceci:

var match = new Regex(test).Match(myString); 

donc la chaîne « test » doit être une déclaration de regex valide. Fondamentalement, ce que j'essaie de faire est de prendre une liste d'interfaces sur un périphérique, de créer une expression regex à partir d'eux, puis utiliser cette regex pour comparer les résultats pour d'autres choses dans mon code. En raison de la façon dont les interfaces sont formatées "FastEthernet0/1" par exemple, il provoque l'échec de mon regex car vous devez échapper toutes les barres obliques. Je dois construire cette regex à la volée parce que chaque périphérique aura un ensemble différent d'interfaces.

+5

Si vous voyez '" Test0 \\/1 "' dans le débogueur, alors ne vous inquiétez pas. La chaîne est toujours correcte. Essayez de l'imprimer sur la console ou en cliquant sur l'icône en forme de loupe à gauche de la chaîne que vous voyez. – Nolonar

+0

Je vois cela dans le débogueur, mais je ne l'imprime pas. J'utilise les résultats pour mettre dans Regex(). Il doit donc s'agir d'une instruction Regex valide. C'est pourquoi j'essaie d'échapper à la barre oblique. –

+0

@KyleRogers le débogueur l'affiche simplement de cette façon. –

Répondre

Questions connexes