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が何らかの理由のために含まれている)を得る:
Iはであることが印刷された結果を期待します
1、+、44、+、(、2、+、3)、(、、、d、+、)、|、[、+、*、 - 、/、(、)、] 、)
したがって、結果に区切り文字を含めないでください。
参照https://repl.it/Co7Oをあなたの時間をwatingため申し訳ありませんが、私が期待される結果を取得しています。 –
実際、私はあなたがどのように*パターン*をあなたの見方に分割するのか理解できません。もちろん、正規表現には問題があり、 ' - 'は文字クラスの先頭または末尾にあるか、エスケープされていなければなりません( '((\ d +)| [+ * /() - ]))。しかし、それはあなたのパターンが分割されることとは関係ありません。 –
私は、+、*、/などが[]内に置かれたときにはシンボルとして扱われ、エスケープする必要はないと確信しています –