2010-05-06 4 views
1

Je veux être capable de lire un fichier, et remplacer toutes les occurrences:Rechercher et remplacer une partie d'une chaîne avec la recherche de type générique

M9S1800.2 avec S1800 (je veux me débarrasser de l'autoroute M9 et les deux). Le problème que j'ai est que le nombre à 4 chiffres après le "S" peut être différent à chaque fois, ainsi que le nombre après la décimale.

Par exemple,

Il peut être: M9S3200.1 ou M9S5400.1 ou M9S5400.2

Quelqu'un peut-il s'il vous plaît me montrer comment faire avec C#?

Je sais comment trouver et remplacer en utilisant ce code:

StreamReader reader = new StreamReader(fDialog.FileName.ToString()); 
string content = reader.ReadToEnd(); 
reader.Close(); 

content = Regex.Replace(content, "M2", "M3"); 

mais avec le M9S3200.1, je veux faire remplacer un type générique. Par exemple, ce serait comme remplacer M9S * .1 avec S * alors M9S3200.1 deviendrait simplement S3200.

+0

Content de recevoir de l'aide sur les regex ici. Voici une petite aide pédante: C# n'a pas d'expressions régulières, contrairement à JavaScript. –

+0

aussi, vous devriez utiliser 'string content = null; en utilisant (StreamReader reader = new StreamReadeer (...)) {content = lecteur.ReadToEnd();} '. Nettoie même si une exception est levée. –

Répondre

6
content = Regex.Replace(content, @"M9(S\d{4})\.\d", "$1"); 
+0

Merci beaucoup. Fonctionne parfaitement. – fraXis

Questions connexes