Autor Zpráva
Peter123
Profil *
Zdravím, hladám regulárny výraz, ktorý dokáže nahradiť nasledujúce reťazce z textu za lubovolný text, napr: --url--.

example.com
example.com/
example.com/dwdwd
example.com/qdqdq?d=555&aaaa=apap
example.com/?d=555&aaaa=apap

+ tie isté príklady ale na subodménach

www.example.com
abc.def.example.com
.
.
.

a tiež s rôznymi protokolmi

http://
ftp://
.
.
.

Objavil som regexp, ktorý rieši velké množstvo variacií

$output = preg_replace("~(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'.,<>?«»“”‘’]))~", "--url--", $input);

ale nerieši napríklad example.com alebo example.com/

Ak máte nejaké zaujímavé riešenia, budem rád ak ich pošlete :)
Str4wberry
Profil
ale nerieši napríklad example.com alebo example.com/

To většinou ani není žádoucí řešit, protože považovat všechny řetězce bez mezer, ve kterých je tečka, za URL může začít přinášet nežádoucí nahrazení. Například v situaci, kdy by ve vstupu bylo zmíněno jméno souboru s příponou nebo někdo neuměl oddělovat tečku za větou mezerou.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0