139 votes

Regex C # pour Guid

J'ai besoin d'analyser à travers une chaîne et d'ajouter des guillemets simples autour de chaque valeur Guid. Je pensais que je pouvais utiliser une Regex pour ce faire, mais je ne suis pas exactement une Regex gourou.

Est-il une bonne expression régulière à utiliser pour identifier un Guid?

Ma deuxième question est une fois j'ai trouvé un valide regex je suppose que je utiliser Regex.Replace(String, String, MatchEvaluator) mais je ne suis pas tout à fait sûr de la syntaxe. Peut-être quelque chose comme:

return Regex.Replace(stringToFindMatch, GuidRegex, match =>
{
    return string.Format("'{0}'", match.Groups[0].ToString());
});

Une chaîne que je suis en train de l'analyser peut ressembler à ceci:

"SÉLECTIONNEZ passwordco0_.PASSWORD_CONFIG_ID comme PASSWORD1_46_0_, À PARTIR de PASSWORD_CONFIG passwordco0_ OÙ passwordco0_.PASSWORD_CONFIG_ID=baf04077-a3c0-454b-ac6f-9fec00b8e170; @p0 = baf04077-a3c0-454b-ac6f-9fec00b8e170 [Type: Guid (0)]"

209voto

buckley Points 4623

Celui-ci est assez simple et ne nécessite pas un délégué comme vous le dites.

 resultString = Regex.Replace(subjectString, 
                             @"\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}\b", 
                             "'$0'", 
                             RegexOptions.IgnoreCase); 
 

8voto

Contango Points 7976

Vous pouvez facilement générer automatiquement le code C # en utilisant: http://regexhero.net/tester/ .

C'est gratuit.

Voici comment je l'ai fait:

entrez la description de l'image ici

Le site Web génère ensuite automatiquement le code .NET:

 string strRegex = @"\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}\b";
Regex myRegex = new Regex(strRegex, RegexOptions.None);
string strTargetString = @"     {CD73FAD2-E226-4715-B6FA-14EDF0764162}.Debug|x64.ActiveCfg =         Debug|x64";
string strReplace = @"""$0""";

return myRegex.Replace(strTargetString, strReplace);
 

8voto

Jayesh Sorathia Points 832

Dans .NET Framework 4, il est l'amélioration du Système.Guid structure, ceux-ci inclut de nouvelles TryParse et TryParseExact méthodes pour Analyser GUID. Ici est un exemple pour cela.

    //Generate New GUID
    Guid objGuid = Guid.NewGuid();
    //Take invalid guid format
    string strGUID = "aaa-a-a-a-a";

    Guid newGuid;

    if (Guid.TryParse(objGuid.ToString(), out newGuid) == true)
    {
        Response.Write(string.Format("<br/>{0} is Valid GUID.", objGuid.ToString()));
    }
    else
    {
        Response.Write(string.Format("<br/>{0} is InValid GUID.", objGuid.ToString()));
    }


    Guid newTmpGuid;

    if (Guid.TryParse(strGUID, out newTmpGuid) == true)
    {
        Response.Write(string.Format("<br/>{0} is Valid GUID.", strGUID));
    }
    else
    {
        Response.Write(string.Format("<br/>{0} is InValid GUID.", strGUID));
    }

Dans cet exemple, nous créons de nouvelles guid de l'objet et aussi prendre une variable de type string qui est non valide guid. Après cela, nous utilisons la méthode TryParse la validation des deux variables a guid valide format ou pas. Par exemple, vous pouvez voir que la variable de chaîne n'est pas valide guid format et il donne un message de "non Valide" guid". Si la variable de chaîne a guid valide que ce sera le retour de vrai dans la méthode TryParse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X