Регулярное выражение Perl, которое может соответствовать как положительным, так и отрицательным значениям - PullRequest
2 голосов
/ 25 ноября 2011

У меня есть список данных, которые я хочу сопоставить:

0:1
0:3
0:-1
0:2
0:-4

Какое регулярное выражение я могу использовать, чтобы сопоставить их все:

Я пробовал это, но не сработает:

$line =~ /0:(\w+)/

Это соответствует только положительным.

Ответы [ 2 ]

5 голосов
/ 25 ноября 2011

\w для символов слова: букв, цифр и подчеркивания.Это означает, что ваше регулярное выражение, кроме 0:34, будет соответствовать чему-то вроде 0:hello, но не будет соответствовать символу минус.

Если вам нужны только цифры, тогда /0:-?\d+/ должно работать.И если вам нужно сопоставить всю строку (чтобы отфильтровать строки вроде a0:-3b, вы можете использовать /^0:-?\d+$/.

1 голос
/ 25 ноября 2011

как насчет $line =~ /0:[-]?[0-9]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...