Регулярное выражение 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://[^/]+/)
Другие вопросы по тегам