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