假设我有一个像这样的字符串
SOMETHING [1000137c] SOMETHING = John Rogers III [SOMETHING] SOMETHING ELSE
我需要把它变成这个
SOMETHING [1000137c] SOMETHING = John_Rogers_III [SOMETHING] SOMETHING ELSE
因此我需要在“[1000137c] SOMETHING =”之后和“[”之前用单词之间的“_”替换空格。我怎么能在PHP中做到这一点?
谢谢!
答案 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来替换回调函数中带下划线的空格。