Bir dize uç kısmını regex ile kaldır

4 Cevap php

Ben varsa / karakter ile başlamak bir dize her şeyi kaldırmak için çalışıyoruz, böylece ediyorum

my_value/j/im<b*+èo[/h>e\ylo

I'd like to remove the string /j/im<b*+èo[/h>e\ylo and return only my_value. I thought to use something with str_replace but I'm not a great regex programmer and I'm doing practise with php.

function clean_value ($value) {
    return preg_replace ("^(/.*?)$", "", $value);
}

Ben nasıl yapabilirim?

4 Cevap

Basit şeyler regex olmadan yapılabilir

$string = "my_value/j/im<b*+èo[/h>e\ylo";
$splitted = explode("/",$string,2);
echo  "$splitted[0]\n";

Eğer düzenli ifadede delimiters unuttum. Ve ^/ bir / ile başlamak dize gerektirir.

Bunun yerine bu deneyin:

preg_replace("~/.*~", "", $value)

Bu amaçla ilk / kadar bir şey çıkarmak olacaktır.

Sen regexp den başlayarak şapka çıkarmak gerekir ve dize geri kalanını almak için açgözlü bir maç kullanabilirsiniz:

function clean_value ($value) {
    return preg_replace ("/\/.*/", "", $value);
}