PHP ile More Than 1 Örneği değiştirin

5 Cevap php

Ben Say

someText-somemore - testi --- dnm2

nasıl ben bunu daha 1 var olan tüm instaces değiştirmek olabilir - ve sadece 1 ile değiştirmek zorunda böylece bu gibi görünecektir

someText-somemore-test-dnm2

5 Cevap

Kullan preg_replace.

preg_replace('/-+/', '-', $mystr);

düzenli ifade kullanın: s/-+/-/ + 'Bir veya önceki karakteri daha' diyor.

Bir düzenli ifade ve preg_replace fonksiyonu ile yapabilirsiniz:

$str = 'sometext-somemore--test---test2';
echo preg_replace('/-+/', '-', $str);

size vermek istiyorum:

sometext-somemore-test-test2


The pattern I used here : -+

  • Maçları bir -
  • One or more than one time : +

Ve normal ifadelerle ilgilenen varsa, kılavuzun PCRE Patterns bölümünü okumak için tereddüt etmeyin ;-)

Bunu kullanın:

echo preg_replace("/-+/","-","sometext-somemore--test---test2");
//prints sometext-somemore-test-test2

for($i=0; $i < strlen($text) - 1; $i++){ if($text[$i] == $text[$i+1]){ $text = str_replace($i.$i, $i, $text); } }

Sence her karakter için kendisi tarafından) (str_replace kullanımı gibi hiçbir yerde yakın olarak verimli çoğaltılamaz olabilir, ama bu iş olacak ..

İstediğiniz tüm biriyle iki tire yerine ise:

$text = str_replace("--", "-", $text);