nasıl bir dize bazı karakterler yerine mi?

2 Cevap

Böyle bir dize var varsayalım

SOMETHING [1000137c] SOMETHING = John Rogers III [SOMETHING] SOMETHING ELSE

ve ben bu çevirmek gerekir

SOMETHING [1000137c] SOMETHING = John_Rogers_III [SOMETHING] SOMETHING ELSE

Onun için ben "[1000137c] ŞEY =" sonra "[" önce kelime arasında "_" ile boşluk değiştirmeniz gerekir. Ben php nasıl yapabilirim?

Teşekkürler!

2 Cevap

$s = "SOMETHING [1000137c] SOMETHING = John Rogers III [SOMETHING] SOMETHING ELSE";
$a = split(" = ",$s,2);
$b = split(' \[',$a[1],2);
$s = $a[0] . ' = ' . strtr($b[0],' ','_') . ' [' . $b[1];

print_r($s);

üretir:

SOMETHING [1000137c] SOMETHING = John_Rogers_III [SOMETHING] SOMETHING ELSE

gibi bir regex kullanarak yani "/ ^ [\ w] + [[\ \ d w] +] [\ w] + = (+ [\ \ d w]) [[\ w \ d] +] [\ w] + $ / i "maç 1 dönmelidir gibi" John Rogers III ", bu örnekte mevcut dayalı olsa.

Yukarıdaki regex ile preg_replace_callback kullanırken, geri arama işlevi çizgi ile boşluk yerine str_replace edebilirsiniz.