ich für einen regulären Ausdruck suchen n Nullen entsprechen und dann ein 1. ZB:Regex n 0 und dann eine 1
0000100 -> matches
00200 -> does not math
Ich dachte, es so etwas wie das war:
var regex = new Regex(@"[0]*[2-9]+");
ich für einen regulären Ausdruck suchen n Nullen entsprechen und dann ein 1. ZB:Regex n 0 und dann eine 1
0000100 -> matches
00200 -> does not math
Ich dachte, es so etwas wie das war:
var regex = new Regex(@"[0]*[2-9]+");
Linq Lösung (und kein regulären Ausdruck):
string source = "0001";
bool isValid = source
.SkipWhile(c => c == '0')
.FirstOrDefault() == '1';
Wenn Sie auf regulären Ausdruck bestehen:
bool isValid = Regex.IsMatch(source, "^0*1");
In beiden Fällen Null oder mehr 0
gefolgt von 1
^[0]+[1]
ist, was Sie wollen:
^
Zeilenanfang
[0]
Spiel 0
+
mindestens einmal
[1]
Match 1
Sie könnten auch ein $
am Ende hinzufügen, wenn Sie es eine komplette Linie übereinstimmen sollen.
Hinweis: Wenn Sie wollen in der Lage sein, n = 0 entsprechen (dh nur 1), benötigen Sie: ^[0]*[1]
Hinweis: Um die Klammern []
optional sind, da sie nur ein Zeichen enthalten, aber ich denke, Sie erleichtern das Lesen. So könnten Sie zB ^0+1
haben, wenn Sie es bevorzugen.
Siehe http://regexstorm.net/reference auch (zum Beispiel) für eine vollständigen C# regex Referenz
Ich glaube nicht, dass OP will, dass die 1 am Ende der Zeile steht (entsprechend dem mitgelieferten Beispiel für Übereinstimmungen) – UnholySheep
Warum muss '[]'? –
@ UnholySheep gerade bemerkt, aktualisiert meine Antwort. Danke – simonalexander2005
Es gibt keine Notwendigkeit von regex hier: Links schneiden Sie die Zeichenfolge aus 0
, und wenn es nicht null oder leer, überprüfen Sie die erste char .
var s = "00001";
if (!string.IsNullOrEmpty(s.TrimStart('0')) &&
s.TrimStart('0').Substring(0, 1) == "1")
{
/* Valid, otherwise, not */
}
Das funktioniert, wenn Sie die Ziffern am Anfang des Strings haben und brauchen nur ein logisches Ergebnis.
Sie Regex entspricht null oder mehr 0 gefolgt von einer oder mehreren Ziffern von 2 bis 9. Das klingt wie das Gegenteil von dem, was Sie versuchen zu tun – UnholySheep
Wo ist die "1" in Ihrem Regex? – Heinzi
was meinst du mit n Nullen? Ist das definiert oder eine beliebige Anzahl von Nullen? – Prajwal