0

まず、C# で電卓をプログラミングしています。文字列を 2 つの変数 Nb1 と Nb2 に分けます。例をウェブで調べたところ、何かが見つかりました:

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");
var match = numAlpha.Match("codename123");
var alpha = match.Groups["Alpha"].Value; // Alpha = codename
var num = match.Groups["Numeric"].Value; // Numeric = 123

「121165468746*1132」または「4586/6953」Nb1 = 121165468746 || の数字のみに適応できません。4586 Nb2 =1132 || 6953

手伝って頂けますか ?私はおかしくなりそうだ :-)

4

3 に答える 3

0
var numAlpha = new Regex("(?<NumOne>[0-9]+)(?<Operator>[^0-9])(?<NumTwo>[0-9]+)");
var match = numAlpha.Match("121165468746*1132");
var nb1 = match.Groups["NumOne"].Value; // nb1 = 121165468746
var nb2 = match.Groups["NumTwo"].Value; // nb2 = 1132
var op = match.Groups["Operator"].Value; // op = *

あなたがしようとしているのは、演算子で区切られた整数のペアに一致するようです。上記の正規表現は、名前付きグループ(?<GroupName> ... )と、それを達成するための 2 つの単純な正規表現を使用します。 [0-9]+は 1 つ以上の数字[^0-9]と一致し、数字以外の任意の 1 文字 (ここでは演算子と見なされます) と一致します。

これがあなたが探していたものではない場合は、コメントを残してください。私はあなたを助けようとします. それまでの間、いくつかの読み物:

于 2012-12-26T23:36:40.210 に答える
0

Regex にこのパターンを使用してみてください: 1 つ以上の数字があり、1 つ以上の数字以外の文字で区切られた数字が少なくとも 2 つあると仮定します (演算子が 1 文字だけではない場合)。グループは および と呼ばn1n2ます。

^(?<n1>\d+)[^\d]+?(?<n2>\d+)$
于 2012-12-26T23:37:51.367 に答える
0

以下を使用して、事前定義された 4 つの基本操作である乗算、減算、加算、除算と数値を一致させます。必要に応じて、「op」式にさらに演算子を追加できます。

Regex rg = new Regex(@"(?<num1>[0-9]+)(?<op>[\*\-\+\\])(?<num2>[0-9]+)");
于 2012-12-27T00:58:04.640 に答える