Есть довольно большой текст. В нем присутствуют числа. А так же в тексте есть ip адреса! Как можно отсеять ненужный текст, лишние числа и оставить лишь ip?
Поначалу задачка казалась не сложной, но что-то я совсем запутался!
текст выглядит примерно так:
"съешь 217.20.164.163еще этих 85 мягких французских 748булок да выпей195.95.206.17 чаю"
Этот топик читают: Гость
Ответов: 204
Рейтинг: 2
|
|||
карма: 1 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Регулярными выражениям легче всего по моему.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) проверка на корректность. ^(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])){3}$
|
|||
карма: 6 |
| ||
Голосовали: | ogrif |
Ответов: 204
Рейтинг: 2
|
|||
flint2 писал(а): Регулярными выражениям легче всего по моему.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) или /^(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])){3}$/ проверка на корректность. спасибо, то что нужно!!! я целые схемы на весь экран рисовал и ничего толком не получилось! А тут раз, два и все! |
|||
карма: 1 |
|
Ответов: 824
Рейтинг: 138
|
|||
flint2, а регулярное выражение зачем такое длинное...
вот так короче ([\d]{1,3}\.){3}[\d]{1,3} |
|||
карма: 1 |
|
Ответов: 2059
Рейтинг: 132
|
|||
sashaoli, а потому, что 256.256.256.256, и 999.999.999.999 это уже не IP адрес.
У тебя такие варианты проходят. Диапазон от 0.0.0.0 до 255.255.255.255 в каждой секции 0-FF |
|||
карма: 6 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Так. Просто по клавишам.
В IPv6 используется длина адреса 128 бит вместо 32. В настоящее время протокол IPv6 уже используется в нескольких тысячах сетей по всему миру. IP выглядит так - 2001:0DB8:0000:ABCD:0000:0000:0000:1234 Для сокращения записи адресов IPv6 заключается в том, что двойное двоеточие :: может заменить любую единую, смежную строку одного или нескольких 16-битных сегментов (хекстетов), состоящих из нулей. Двойное двоеточие :: может использоваться в адресе только один раз. Неверный адрес: 2001:0DB8::ABCD::1234 Возможные расширения неоднозначно записанных сжатых адресов: 2001:0DB8::ABCD:0000:0000:1234 2001:0DB8::ABCD:0000:0000:0000:1234 2001:0DB8:0000:ABCD::1234 2001:0DB8:0000:0000:ABCD::1234 |
|||
карма: 6 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 07:52:32 |
|||
карма: 0 |
|
Ответов: 2059
Рейтинг: 132
|
|||
г. _мимо_проходил_,
Имелось ввиду по теме - regular expressions. а если ещё и порт нужен? А порт, каким боком? - это префикс-суффикс. Это уже адресация в коммунальной квартире. Газету кладут в почтовый ящик квартиры, а не на стол в комнате Ивана Ивановича. Да, помню, в пятидесятых -шестидесятых, несколько ящиков на двери, - это и есть по портам. Порты обозначались наклеенными названиями газет на почтовых ящиках, а адрес - это улица, дом, корпус и номер квартиры. Сколько может жильцов проживать, сколько можно портов завести? - определяется возможностью попасть в туалет, ну и на кухне... Хорошо быть девушкой в розовом пальто, Можно и не в розовом, - но уже не то. Хорошо быть дамаю в норковом манто, Можно и не в норковом, - но уже не то. |
|||
карма: 6 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 07:52:33 |
|||
карма: 0 |
|
Ответов: 2059
Рейтинг: 132
|
|||
IPv4 - то да.
Я понял, что вопрос заключался в этом: HTTP://[ 2001:0f68:0000:0000:0000:0000:1986:69af]:80/ Адрес IPv6 содержит много двоеточий. Но браузер (Web browser) считает, что все, что следует за двоеточием – это номер порта (port number). Поэтому адреса IPv6 закрываются квадратными скобками. |
|||
карма: 6 |
|
Ответов: 5227
Рейтинг: 587
|
|||
карма: 4 |
| ||
файлы: 1 | code_36946.txt [2.2KB] [374] |
11