ersetzen *
mit +
:
var pat = @"^\d+[+-]\d+$";
ein demo of how this regex works See.
Die +
quantifier wird ein oder mehrere Instanzen einer Zifferneingabe wie -
, +
, 1+
oder -2
disallowing entsprechen.
Außerdem müssen Sie nicht entkommen +
oder -
im [-+]
Zeichenklasse (-
nicht entgangen sein muss, wie es bei seinem Start/Ende).
Hier ist ein C# demo:
var strs = new string[] {"1+1","1-1","2+9","3-12","31-10","11+11","+1","+2","+31","1+","7+","-1","-2","-31","1-","7-"};
foreach (string s in strs)
{
var matched = Regex.IsMatch(s, @"^\d+[+-]\d+$");
Console.WriteLine("{0}: {1}", s, matched);
}
Ausgang:
1+1: True
1-1: True
2+9: True
3-12: True
31-10: True
11+11: True
+1: False
+2: False
+31: False
1+: False
7+: False
-1: False
-2: False
-31: False
1-: False
7-: False
wenn Sie auch übereinstimmen möchten, wenn es einen optioanl Leerzeichen zwischen 1 und +^\ d + \ s * [\ + \ -] \ s * \ d + $ – lordkain
, wenn Sie '*' in '+' ändern und entfernen unnesesery '\' in '[]' Ihre Regex ist corect –