1
爲什麼正則表達式返回多值的匹配?正則表達式從字符串選擇匹配問題
請參閱下面的代碼,它應該只返回一個結果。爲什麼有兩個?
e.g
Match m = Regex.Match("[Red] #,0.00 \"Ex\"", @"^\[(RED|GREEN|ORANGE)\]", RegexOptions.IgnoreCase);
if (m.Success)
{
Console.WriteLine(m.Groups.Count);
Console.WriteLine(m.Groups[0].Value);
Console.WriteLine(m.Groups[1].Value);
}
else
Console.WriteLine("No match");
========Result===============
2
[Red]
Red
Press any key to continue . . .
但werid東西。如果我這樣做「^ \ [(RED)\]」,將匹配「RED」和「[RED]」,如果只有「^ \ [RED \]」,那麼我將只匹配「[RED]」...爲什麼???? – jojo
'^ [(RED)]'是行開頭的角色類。它等價於'^ [DER()]'。方括號的意思是匹配任何*一個*裏面的字符。它將匹配這些字符中的任何一個:'()DER'。這就是爲什麼在你的情況下,你需要轉義'['和'[''像這樣:'^ \ [(RED)\]'。 –