2017-10-18 1 views
2

Gibt es eine Möglichkeit, die URL oder Domain aus einer gegebenen Zeichenfolge mit Klammern zu finden und zu entfernen?Entfernen von url/domain von string mit Klammern

Beispiel: (wie someurl.com) sollte (wie) sein und [wie someurl.com] um [wie] zu werden ... auch [wie someurl.com/path/something.html] sollte [wie] sein

vielleicht kann mir jemand mit einem Code helfen, dies zu tun.

+2

regex ist das, was Sie suchen – user1506104

+0

Versuchen 'preg_replace mit()'. Ich sehe dein Tag, aber was hast du probiert? – PHPglue

+0

ich geschafft, url/domain von Zeichenkette zu ersetzen, aber ich kann es nicht in Klammern tun ... – radu

Antwort

0

Sie benötigen einen Regular Expression (REGx) hier

$string_with_url = 'lorem (like GOoogle.COM someurl.com/path/something.html) lipsum'; 

$string_without_url = preg_replace("/(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-zA-Z0-9]+([\-\.]{1}[a-zA-Z0-9]+)*\.[a-zA-Z]{2,5}(:[0-9]{1,5})?(\/.+[a-zA-Z\/]\s)?/", "", $string_with_url); 

echo $string_without_url; // lorem (like) lipsum 
+0

Das funktioniert gut bei Kleinbuchstaben, Großbuchstaben werden nicht ersetzt, oder wenn eine Domain ist: someDomain.com ersetzt nur omain.com und es wird someD – radu

+0

kein großes Problem, ich habe meine Antwort – AZinkey

+1

vielen Dank aktualisiert, Das war die Lösung. – radu

0
$str = "(like someurl.com)"; 
$index_dot = $index_space_before_dot = $index_after_dot = -1; 
for($i=0; $i<strlen($str); $i++){ 
    if($str[$i] == '.'){ 
     $index_dot = $i; 
    } 

    if($str[$i] == ' ' && $index_dot == -1 && $index_space_before_dot == -1){ 
     $index_space_before_dot = $i; 
    }elseif ($str[$i] == ' ' && $index_dot > -1){ 
     $index_space_before_dot = $i; 
    } 
} 

$str = substr($str, 0, $index_space_before_dot); 
echo $str . ')'; 
Verwandte Themen