Reguläre Ausdrücke in findstr
Ich bin dabei ein wenig string-Validierung mit findstr
und seine /r
flag damit für reguläre Ausdrücke. Insbesondere möchte ich zum validieren von Integer-zahlen.
Regex
^[0-9][0-9]*$
funktioniert für nicht-negative zahlen, aber da ich nun Unterstützung negative zahlen ebenso habe ich versucht
^([1-9][0-9]*|0|-[1-9][0-9]*)$
entweder positive oder negative Ganzzahlen oder null.
Regex funktioniert theoretisch. Getestet habe ich es in PowerShell, und es entspricht dem, was ich will. Jedoch, mit
findstr /r /c:"^([1-9][0-9]*|0|-[1-9][0-9]*)$"
nicht.
Obwohl ich weiß, dass findstr
nicht über die erweiterte regex-Unterstützung (auch unter Notepad++, das ist wahrscheinlich schon eine Leistung), hätte ich erwartet, dass solche einfachen Ausdrücke zu arbeiten.
Irgendwelche Ideen, was mache ich hier falsch?
findstr
existiert nur dort ... InformationsquelleAutor der Frage Joey | 2010-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese funktioniert bei mir:
Wenn Sie nicht die
/c
option, die<Strings>
argument behandelt wird, als eine durch Leerzeichen-getrennte Liste der Suche nach Zeichenfolgen, die macht den Raum eine Art von Rohöl, Ersatz für die|
konstruieren. (So lange, wie Sie Ihre regexes keine Leerzeichen enthalten.)InformationsquelleAutor der Antwort Alan Moore
Argh, ich sollte gelesen haben die Dokumentation besser.
findstr
offenbar nicht unterstützt-Wechsel (|
).So, ich bin wohl wieder auf mehrere Aufrufe oder ersetzen das ganze mit einer benutzerdefinierten parser schließlich.
Dies ist, was ich jetzt tun:
InformationsquelleAutor der Antwort Joey
Oder wenn Sie können, laden Sie grep für windows.. Viele weitere features als
findstr
bietet.InformationsquelleAutor der Antwort ghostdog74
Einen einfacheren
regex
erreicht die gleiche Sache möglich ist, nur fügen Sie ein optionales minus, um das start von Ihrem ursprünglichen Ausdruck:InformationsquelleAutor der Antwort martski
Ich weiß, dies ist eine wirklich alte post, aber dachte, es kann kommen in der Zukunft, so dass ich schnell gehackt ein wenig mehr erweiterte batch-Lösung. Normalerweise würde ich nur verwenden, powershell, python, ruby oder vbs. Es ist viel schwieriger in eine batch-Sprache, sondern warum nicht. 😛
InformationsquelleAutor der Antwort user2631477