如何替换字符串中的某些字符?

时间:2010-05-28 07:30:15

标签: php

假设我有一个像这样的字符串

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

我需要把它变成这个

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

因此我需要在“[1000137c] SOMETHING =”之后和“[”之前用单词之间的“_”替换空格。我怎么能在PHP中做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:3)

$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);

产生

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

答案 1 :(得分:0)

$ arr =在“=”上拆分数组中的字符串 然后

str_replace(" ", "_", $arr[1])

答案 2 :(得分:0)

使用像这样的正则表达式“/ ^ [\ w] + [[\ w \ d] +] [\ w] + =([\ w \ d] +)[[\ w \ d] +] [ \ w] + $ / i“应该将匹配1作为”John Rogers III“返回,尽管这基于当前的例子。

使用带有上述正则表达式的preg_replace_callback,你可以使用str_replace来替换回调函数中带下划线的空格。