2016-08-18 23 views
0

中匹配打印的图案我在c#中有一点正则表达式问题。为什么在RegEx.Matches

我的代码

string str ="1+44+(2+3)"; 
string pattern = @"((\d+)|[+*-/()])"; 

foreach (Match m in Regex.Matches(str,pattern)) 
{ 
    Console.WriteLine(m.Groups[1].Value); 
} 

每场比赛在新的一行写的,但对于节省空间生病单独每场比赛以“”代替的缘故。

我期望印刷是结果:

1,+,44,+,(2,+,3)

,但我得到(delimter包括出于某种原因):

1,+,44,+,(,2,+,3,),(,(,\,d,+,),|,[,+,*, - ,/,(,),] ,)

那么,如何避免在结果中包含分隔符。

+0

查看https://repl.it/Co7O,我收到了预期的结果。 –

+1

其实,我无法理解你如何获得*图案*按照你展示的方式分割。当然,正则表达式存在一个问题,'''必须在字符类的开始或结尾,或者转义('((\ d +)| [+ * /() - ])')。但是,它与你的模式分裂无关。 –

+0

我很确定,当+,*,/等被放在[]内时,它们被视为符号,不需要转义它们 –

回答

0

它是正确的。然而,我完全错过了另一个循环从一些旧的实验进一步下降。当你受到压力时会发生什么。

我很抱歉让你的时间