我有一個很大的正則表達式,我用它來解析我自己的類似於lua的文件格式。這工作正常,除了不管怎樣,引號內的數字得到匹配兩次,即使拆分不應該返回重疊的結果。我簡化了它到這個控制檯應用程序。有任何想法嗎?Regex.Split如何給我重疊匹配?
static void Main(string[] args)
{
string pattern = "(\r\n)|(\"(.*)\")"; // Splits at \r\n and anything in "quotes"
string input = "\"01\"\r\n" + // "01"
"\"02\"\r\n" + // "02"
"\"03\"\r\n"; // "03"
string[] results = Regex.Split(input, pattern);
foreach (string result in results)
{
//This just filters out the split \r\n and empty strings in results
if (string.IsNullOrWhiteSpace(result) == false)
Console.WriteLine(result);
}
Console.ReadLine();
}
返回:
"01"
01
"02"
02
"03"
03
我不知道Regex.Split應該匹配定界符,但即使如此,爲什麼括號影響比賽?他們不是隻用於分組嗎? – Miguel 2010-12-18 04:41:03
@Miguel:我建議你閱讀文檔。我提供了一個鏈接,但時間並不長。 – 2010-12-18 04:44:04
本的權利,這不是'Split'的工作。 – 2010-12-18 04:58:09