7.4. Odnajdywanie w dłuższym tekście adresów URL z nawiasami okrągłymi

Problem

Chcemy odnajdywać adresy URL w dłuższym tekście. Dopasowywane adresy mogą, ale nie muszą być otoczone znakami interpunkcyjnymi wchodzącymi w skład tekstu (nie samych adresów URL). Chcemy też prawidłowo dopasowywać adresy URL zawierające pary nawiasów okrągłych (w ramach tych adresów), ale nawiasy otaczające całe adresy URL nie mają wchodzić w skład dopasowań.

Rozwiązanie

  • \b(?:(?:https?|ftp|file)://|www\.|ftp\.)
      (?:\([-A-Z0-9+&@#/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#/%=~_|$?!:,.])*
      (?:\([-A-Z0-9+&@#/%=~_|$?!:,.]*\)|[A-Z0-9+&@#/%=~_|$])
    • Opcje wyrażenia regularnego: Swobodne stosowanie znaków białych, ignorowanie wielkości liter

    • Odmiany wyrażeń regularnych: .NET, Java, PCRE, Perl, Python, ...

Get Wyrażenia regularne. Receptury now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.