php özel karakterler ile regex

2 Cevap php

I charset=utf-8; ve charset=utf-8" ile charset=blablabla; ve charset=blablabla" preg_replace çalışıyorum. ; = ve " karakterleri görmek ve tabii dize alt / büyük harf olabilir aradı lütfen.

Bana yardımcı olabilir misiniz?

2 Cevap

Sen gibi bir şey ile değerini değiştirin olabilir:

$subject = 'Testing... charset=baz; and charset=bat" :-)';
echo preg_replace('/(?<=charset=)[a-zA-Z0-9_-]+(?=[;"])/', 'utf-8', $subject);
// Testing... charset=utf-8; and charset=utf-8" :-)

Yıkılıp, regex eşleşir:

  • Hemen charset= izleyen bir nokta (kullanarak bir lookbehind)
  • Bir veya daha fazla alfanümerik dizisi, (değiştirilmesi) alt çizgi veya tire karakterleri
  • Bir noktalı virgül ya da çift tırnak karakteri ardından ya eğer

Sen böyle bir şey deneyebilirsiniz.

echo preg_replace("#charset=[a-zA-Z0-9]+(\;)?#", "charset=utf-8$1", "charset=sdfsfsds");