2013-08-28 233 views
0

我试图用“空间”替换第一个“:”,但我不知道如何去做! 也许你们可以帮助我。PHP/Python将第一个字符串替换为另一个字符串

在文本:

ab:cd:ef:gh:ij:kl:mn 
12:ab:c2:f3 303:mx: 
dk:ad:Y4:D3 
12:31:44:aC:210 sda: 

输出将是:

ab cd:ef:gh:ij:kl:mn 
12 ab:c2:f3 303:mx: 
dk ad:Y4:D3 
12 31:44:aC:210 sda: 

也许你能帮助我。

在此先感谢

+1

你尝试过什么?这些行是在某个文件中,还是作为字符串的一部分?或者他们都是不同的字符串? –

+0

你在PHP中看过'str_replace()'的文档吗?它拥有你需要的一切。 – Barmar

回答

1

可以在PHP中使用:

$result = preg_replace('~^[^:]*\K:~m', ' ', $text); 

其中:

[^:]意味着除了:

\K所有字符之前重置所有比赛。

m立场多行模式(开始时锚^装置开始行而不是串的默认开始的)

1

在Python中,

a = 'ab:cd:ef:gh:ij:kl:mn' 
a = a.replace(':', ' ', 1) 

收率

ab cd:ef:gh:ij:kl:mn 
0

像这样的东西应该在PHP中的工作:

$output = preg_replace("/(^.*?):/m", "$1 ", $input); 

将在有空间的每个线更换一次:

例如:

$input = "ab:cd:ef:gh:ij:kl:mn 
12:ab:c2:f3 303:mx: 
dk:ad:Y4:D3 
12:31:44:aC:210 sda:"; 
print "<pre>$input</pre>"; 
print "--------------------"; 

$output = preg_replace("/(^.*?):/m", "$1 ", $input); 

print "<pre>$output</pre>"; 

将输出

ab:cd:ef:gh:ij:kl:mn 
12:ab:c2:f3 303:mx: 
dk:ad:Y4:D3 
12:31:44:aC:210 sda: 
-------------------- 
ab cd:ef:gh:ij:kl:mn 
12 ab:c2:f3 303:mx: 
dk ad:Y4:D3 
12 31:44:aC:210 sda: 
相关问题