3
string pattern = @"(if)|(\()|(\))|(\,)";
string str = "IF(SUM(IRS5555.IRs001)==IRS5555.IRS001,10,20)";
string[] substrings = Regex.Split(str,pattern,RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase) ;
foreach (string match in substrings)
{
Console.WriteLine("Token is:{0}", match);
}
進出賣出期權Regex.Split空白
Token is:
Token is:IF
Token is:
Token is:(
Token is:SUM
Token is:(
Token is:IRS5555.IRs001
Token is:)
Token is:==IRS5555.IRS001
Token is:,
Token is:10
Token is:,
Token is:20
Token is:)
Token is:
正如你可以在1,3和最後一個記號看空字符串,我不能夠理解爲什麼這種結果,有在給定的字符串中不是空字符串。
我不希望這是結果
是的,你是正確的,如果我刪除如果然後空字符串從1和3位置刪除,但仍然在最後的位置,我不刪除如果和繼續相同的模式,但只是刪除RegexOptions.IgnoreCase然後我得到了相同的結果使用你的模式... – jats 2012-04-08 19:40:40
因爲如果區分大小寫,它不會識別「if」。你不能避免最後一個空的條目,因爲「)」是一個分隔符,它將剩下的東西與正確的東西分隔開來,因爲右邊沒有任何東西可以獲得最後一個空條目。 – 2012-04-08 19:50:13