| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Список IP с помощью регулярного выражения |
| Автор: Serebrus 11.6.2009, 14:46 |
| Привет народ Винграда. Допустим есть строка (длинная) или текст, в котором имеются IP адреса. Надо составить список IP адресов с помощью регулярного выражения. Регулярное выражение для IP несложное: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} |
| Автор: Serebrus 11.6.2009, 15:05 | ||
| Я пробовал так: Допустим текст такой: 2рло jkhjkhjkh 192.168.10.10 192.168.10.12 jdkfhsf рашгршр 192.168.10.2
В результате 5 строк, 2я и 4я строка пустая. Мне надо: 192.168.10.10 192.168.10.12 192.168.10.2 Как исправить? |
| Автор: Serebrus 11.6.2009, 16:09 |
| dumb, я написал регулярку для IP (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}), потому что думал, с помощью этого регулярного выражения можно найти IP. Но оказывается, можно найти а не вырезать IP. |
| Автор: Serebrus 11.6.2009, 17:28 |
| Братцы, почти удалось. Поменял \s*[а-яА-Яa-zA-Z]{1,}\s* на \s*[а-яА-Яa-zA-Z\s*]{1,}\s*. Результат: 2 192.168.10.10 192.168.10.12 192.168.10.2 Все таки остается первая строка остается (значение: 2), но этот результат в полне удовлетворяет чем первый. |
| Автор: WandG 11.6.2009, 19:11 |
| Если задача позволяет, то можно просто в лоб - брать получившийся список и оставить в нем только то, что подходит под \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} |
| Автор: AntonN 11.6.2009, 23:01 | ||||
| Serebrus, во первых у TStrings нет конструктора (неужели после D7 появился? во вторых:
Добавлено @ 23:04 еще можно над регулярочкой покорпеть, дабы выдирало именно IP, а не скушало 482.325.478.111
|
| Автор: Akella 12.6.2009, 09:58 |
| http://blogs.msdn.com/oldnewthing/archive/2006/05/22/603788.aspx |