string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Düzenli İfadeler'i kullanarak '
tırnak arasındaki metni almak istiyorum.C# Normal İfadeler, tek tırnak işaretleri arasındaki dize
Herkes yapabilir mi? yapmalı böyle
string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Düzenli İfadeler'i kullanarak '
tırnak arasındaki metni almak istiyorum.C# Normal İfadeler, tek tırnak işaretleri arasındaki dize
Herkes yapabilir mi? yapmalı böyle
şey: İfade '([^']*)
ait
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);
}
Açıklama:
' -> 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
Normal bir ifade kullanarak bir dizede GUıD'ın maç için arıyoruz.
İstediğiniz budur, şüpheliyim!
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)
{
...
}
Bu hat üzerinde ilk ve son tek alıntı arasında metin ayıklamak olacak: Sen pozitif ileri yönlü ve aynı zamanda Geriye İlerleme kullanabilirsiniz
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
}
eğer 'a', 'b' olsaydı, bu muhtemelen bir "a" yerine, bir "a", "b" dizgisi alırdı. @ Fredrik bunu yapacak. –
,
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);
}
öyle çok yardımcı açıklama. Ama neden grup [1]? – liang
@liang İlk grup ('match.Groups [0]') tüm regex ile eşleşen tam dizeyi içerecektir. Bu aynı zamanda önde gelen tırnak karakterini de içerdiği anlamına gelir. 'match.Groups [1]' regex'te ilk eşleşen grubu içerir, yani kullanmak istediğimiz değer budur. –
Gruplar hakkında bilmiyordum, ama tam olarak bu çok yardımcı oluyor! +1 – feldeOne