Regex - bir dize sonunda Trim karakter

3 Cevap php

Ben dizenin sonunda bir sondaki - (tire) çıkarmak için çalışıyorum. İşte benim kod:

<?php

$str = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';

echo ereg_replace('([^a-z0-9]+)','-',strtolower($str));

?>

Bu üretir:

save-45-wed-beach-co-ed-6s-jul-aug-

Nasıl belirli bir eğik karakter çizgi bu durumda, sadece orada varsa kaldırabilirim?

Şimdiden teşekkürler.

3 Cevap

Kullan rtrim:

rtrim($str, "-")

Eğer regex kullanarak ısrar ederse, bunu yapabilirsiniz

preg_replace('/-$/', '', $str)

$ karakter konunun sonuna eşleşir.

Başka bir çözüm.

<?php

$string = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';
$search = array('/[^a-z0-9]+/', '/[^a-z0-9]$/');
$replace = array('-', '');
echo preg_replace($search, $replace, strtolower($string));

?>

Çıktı.

save-45-wed-beach-co-ed-6s-jul-aug

Bu bir çizgi ile her alfanümerik olmayan karakterleri kaldırır çünkü regex yanlıştır.

O olmalı

echo ereg_replace('-$','',strtolower($str));

$ means "end of string" and the second parameter is the replacement. (At least I think so, I don't know the php ereg_replace function)