Как сопоставить 2 последних номера IP-адреса? - PullRequest
0 голосов
/ 29 октября 2019

я не знаю, что мне не хватает ^^

Я на bash-скрипте, я протестировал его с https://regex101.com/

Вот какой-то IP-адрес:

192.168.23.84
192.168.112.34
192.168.43.227

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

\.([0-9]{2})\.|\.([0-9]{1})\.|\.([0-9]{2})$|\.([0-9]{1})$

Я не знаю, почему я не сопоставляю два последнихцифры, есть ли лучшее решение?

1 Ответ

2 голосов
/ 29 октября 2019
^(\d{1,2})\.|\.(\d{1,2})\.|\.(\d{1,2})$

У вас есть 3 случая: 1 | 2 цифры после начала, за которым следует точка, 1 | 2 цифры между точками, 1 | 2 цифры после точки в конце строки.

С этим решением у вас будет 3 группы, и вы не сможете узнать, какая часть для средней группы не имеет 3 цифры. Если вы хотите, чтобы 4 группы использовали эту:

(?:^(\d{1,2})\.)|(?:^\d{3}\.(\d{1,2})\.)|(?:\.(\d{2})$)|(?:\.(\d{2})\.\d{2,3})

Редактировать: https://regex101.com/r/eAc8XX/1

Имейте в виду, что я не ищу действительный IPv4 с регулярным выражением тезисов.

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