Регулярное выражение Python для IP-адреса и URL
Я пытаюсь извлечь только часть IP-адреса и URL из журнала, содержащего данные в формате
153.12.123.123 - - [13/Nov/2014:15:06:43 -0700] "GET /icons/AHPS/0.06.png HTTP/1.1" 123 1234 "http://198.123.123.123/index.html" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/1234567 Firefox/33.0"
153.12.123.123 - - [13/Nov/2014:15:06:43 -0700] "GET /icons/AHPS/0.06.png HTTP/1.1" 123 1234 "http://abc.weatherabc.org/?Center=38.123456789" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/1234556 Firefox/33.0"
В настоящее время я использую это выражение в командной строке:
[^\"]*\"[^\"]*\"[^\"]*\"([^\"]*)\"
и это производит их как результаты:
http://198.123.123.123/index.html
http://abc.weatherabc.org/?Center=38.123456789
Однако я хочу регулярное выражение, которое производит только эти части:
http://198.123.123.123/
http://abc.weatherabc.org/
или же
http://198.123.123.123
http://abc.weatherabc.org
Пожалуйста помоги. Заранее спасибо!
1 ответ
"(http://[^/]+)
Найдите ключевое слово http, которое является общим и заканчивается первым /
- " Ищет "
- http: // Это будет соответствовать http: //
- [^ /] + Это будет соответствовать всем символам, кроме /
- Скобки используются для извлечения необходимых данных, поэтому "это за скобками. Это называется группами.
Если вам нужно / в конце просто добавьте его в группу
"(http://[^/]+/)