Regex возвращает неверный результат. - [0-9] - PullRequest
0 голосов
/ 21 марта 2020
PS C:\> $pattern = '[0-9]'
PS C:\> $pattern -match '9'
True
PS C:\> $pattern -match '1'
False
PS C:\> $pattern -match '0'
True
PS C:\> $pattern -match '3'
False

Я новичок в регулярных выражениях. Разве [0-9] не должен возвращать true, если полученное значение находится в диапазоне от 0 до 9? Он возвращает true только для 0 и 9. Я протестировал его на regex101.com, и было найдено совпадение 3.

PS C:\> $pattern = '^[0-9]'
PS C:\> $pattern -match '0'
True
PS C:\> $pattern -match '02'
False

Кроме того, ниже следует вернуть True.

Я действительно не знаю, почему он продолжает давать неправильный результат. Или есть какие-то проблемы с этим?

1 Ответ

1 голос
/ 21 марта 2020

В операторе -match регулярное выражение должно быть в правильном операнде. Вы помещали регулярное выражение в левый операнд, поэтому регулярное выражение было взято в качестве строки для сопоставления, а число было принято в качестве регулярного выражения. Например:

3 -match $pattern
Output: True

Кстати: \ d соответствует любой цифре:

3 -match "\d"
Output: True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...