Php olmayan kırılma alanı Regex

1 Cevap php

Giriş:

$string = "a b c  d   e"; 

i php bir dize var ve ben-olmayan mola alan koduyla dizesini değiştirmeniz gerekiyor

çıktı:

"a \xc2\xa0b c \xc2\xa0d \xc2\xa0\xc2\xa0e"
  1. tek boşluk ve ilk uzay \ xc2 \ xa0 ile değiştirmek için izin verilmez
  2. iki uzay "göründüğünde \ xc2 \ xa0" "çıktı", ilk uzay tutulur ve ikinci uzay değiştirin.
  3. üç boşluk "göründüğünde xc2 \ xa0 \ xc2 \ xa0 \", ilk uzay tutulur ve ikinci ve üçüncü boşluk değiştirilir ", çıktı".
  4. giriş dizesi rastgele bir

Any idea with the Regular expression or other function of php Thank you very much.

1 Cevap

preg_replace('/(?<= ) {1,2}/', "\xc2\xa0", $str);

Bir boşluk maç metilheksadesil etoksilat ise Geriye İlerleme (?<= ) görür,  {1,2} boşluk 1 ve 2 ile eşleşir. Yerine sadece eşleşen alanlarda değil, Geriye bakan ile olur. Eğer (3'ten fazla da varsa) mümkün olduğunca çok sayıda boşluk değiştirmek istiyorsanız, sadece {1,2} + ile değiştirin.