2009-08-29 6 views
0

J'ai besoin d'aide pour extraire les bits d'information suivants à l'aide d'expressions régulières.Extraction de données à partir d'une chaîne à l'aide d'expressions régulières

Voici ma chaîne d'entrée « C: \ Oui »

******** caractère manquant au début de la chaîne et entre, mais pas à la fin = un air bizarre L. superscript * **

J'ai besoin d'extraire "C: \" dans une chaîne et "Oui" dans une autre.

Merci d'avance.

+0

J'ai une idée, mais je travaille à plat pendant 3 heures maintenant si ... =) – IbrarMumtaz

Répondre

1

L'expression régulière suivante retourne C:\ dans le premier groupe de capture et le reste dans la seconde:

^(\w:\\)(.*)$ 

Cette recherche: une chaîne complète (^…$) commençant par une lettre (\w, bien que [a-z] serait probablement plus précis pour les lettres de lecteur Windows), suivi de :\. Tout le reste (.*) est capturé dans le deuxième groupe.

Notez que cela ne fonctionnera pas avec les chemins UNC. Si vous travaillez avec des chemins, le mieux est de ne pas utiliser de chaînes et d'expressions régulières, mais plutôt l'API trouvée dans System.IO. Les classes trouvées là offrent déjà la fonctionnalité que vous voulez.

+0

Je goiong de donner un coup de feu ce, il ressemble à ce que je veux et semble assez facile à lire. Je vais répondre avec une réponse si cela résout mon problème. Merci. – IbrarMumtaz

0
Regex r = new Regex("([A-Z]:\\)([A-Za-z]+)"); 
Match m = r.Match(@"C:\"); 

string val1 = m.Groups[0]; 
string val2 = m.Groups[1]; 
3

Je ne voudrais pas déranger avec des expressions régulières pour cela. Trop de travail, et je serais trop susceptible de tout bousiller.

var x = @"C:\Yes"; 

var root = Path.GetPathRoot(x); // => @"C:\" 
var file = Path.GetFileName(x); // => "Yes" 
+0

Ça va mais je ne travaille pas avec les chemins, oui c'est autre chose tous ensemble. Merci quand même. – IbrarMumtaz

+0

S'il ressemble à "C: \ Yes", même s'il ne s'agit pas d'un chemin, j'utiliserais toujours ces méthodes, exactement pour les raisons données. Que ce soit un fichier de configuration ou non ne fait aucune différence pour l'ordinateur. – Alec

Questions connexes