string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Je souhaite obtenir le texte entre guillemets '
utilisant des expressions rationnelles.Expressions régulières C#, chaîne entre guillemets simples
Quelqu'un peut-il?
string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Je souhaite obtenir le texte entre guillemets '
utilisant des expressions rationnelles.Expressions régulières C#, chaîne entre guillemets simples
Quelqu'un peut-il?
Quelque chose comme ça devrait le faire:
string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Match match = Regex.Match(val, @"'([^']*)");
if (match.Success)
{
string yourValue = match.Groups[1].Value;
Console.WriteLine(yourValue);
}
Explication de l'expression '([^']*)
:
' -> find a single quotation mark
( -> start a matching group
[^'] -> match any character that is not a single quotation mark
* -> ...zero or more times
) -> end the matching group
Vous cherchez à correspondre GUID dans une chaîne en utilisant une expression régulière.
C'est ce que vous voulez, je suppose!
public static Regex regex = new Regex(
"(\\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-"+
"([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\\}{0,1})",RegexOptions.CultureInvariant|RegexOptions.Compiled);
Match m = regex.Match(lineData);
if (m.Succes)
{
...
}
Cela va extraire le texte entre la première et dernière guillemet simple sur une ligne:
string input = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Regex regName = new Regex("'(.*)'");
Match match = regName.Match(input);
if (match.Success)
{
string result = match.Groups[1].Value;
//do something with the result
}
si vous aviez 'a', 'b' celui-ci obtiendrait une seule chaîne de "a", "b" plutôt que le "a" probablement prévu. @ Fredrik fera cela. –
Vous pouvez utiliser préanalyse positive et lookbehind aussi,
string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Match match = Regex.Match(val, @"(?<=')[^']*(?=')");
if (match.Success)
{
string yourValue = match.Groups[0].Value;
Console.WriteLine(yourValue);
}
il est explication très utile. Mais pourquoi grouper [1]? – liang
@liang Le premier groupe ('match.Groups [0]') contiendra la chaîne complète qui correspond à toute la regex. Cela signifie qu'il contient également le caractère de guillemets principal. 'match.Groups [1]' contient le premier groupe correspondant dans la regex, donc c'est la valeur que nous voulons utiliser. –
Je ne connaissais pas les groupes, mais c'est exactement ce qui aide beaucoup! +1 – feldeOne