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,+,),|,[,+,*, - ,/,(,),] ,)
那么,如何避免在结果中包含分隔符。
查看https://repl.it/Co7O,我收到了预期的结果。 –
其实,我无法理解你如何获得*图案*按照你展示的方式分割。当然,正则表达式存在一个问题,'''必须在字符类的开始或结尾,或者转义('((\ d +)| [+ * /() - ])')。但是,它与你的模式分裂无关。 –
我很确定,当+,*,/等被放在[]内时,它们被视为符号,不需要转义它们 –