Я делаю небольшую проверку строки с findstr
и ее флагом /r
, чтобы учесть регулярные выражения. В частности, я хотел бы проверить целые числа.
Регулярное выражение
^[0-9][0-9]*$
отлично работал для неотрицательных чисел, но так как теперь я поддерживаю и отрицательные числа, я попытался
^([1-9][0-9]*|0|-[1-9][0-9]*)$
для положительных или отрицательных целых чисел или нуля.
Регулярное выражение прекрасно работает теоретически . Я проверил его в PowerShell, и он соответствует тому, что я хочу. Однако с
findstr /r /c:"^([1-9][0-9]*|0|-[1-9][0-9]*)$"
это не так.
Хотя я знаю, что findstr
не обладает самой продвинутой поддержкой регулярных выражений (даже ниже Notepad ++, что, вероятно, является большим достижением), я ожидал бы, что такие простые выражения будут работать.
Есть идеи, что я здесь не так делаю?