регулярное выражение в grep - PullRequest
0 голосов
/ 28 октября 2011

Я пытаюсь сопоставить действительный IP-адрес с помощью регулярного выражения.У меня есть выражение, но проблема в том, что я не могу понять поведение grep.

для сопоставления чисел в диапазоне 0-255, которые я сделал: echo 15 |grep -E "[01]? [0-9] [0-9]? | 25 [0-5] | 2 [0-4] [0-9]"

Но это соответствует всемчисла!

, например, 3000 также совпадают - я думаю, это потому, что оно соответствует «30», который является частью всей строки 3000 ... тогда я попытался grep -E "([01]? [0-9] [0-9]? | 25 [0-5] | 2 [0-4] [0-9]) $ "

(попытка сопоставить 0-255 с последующим концом строки) ..Но это не похоже на работу.какие-либо предложения ??

Допустимо ли ставить скобки в отдельные части регулярного выражения?что-то вроде этого -> ((a | b) c) (l | m)

1 Ответ

1 голос
/ 28 октября 2011
 echo 15 | grep -E "^([01]?[0-9][0-9]?|25[0-5]|2[0-4][0-9])$"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...