仅在字符串的一个特殊部分中替换字符

时间:2012-04-18 11:21:17

标签: php

当我有一个字符串时:

$string = 'word1="abc.3" word2="xyz.3"';

如何在xyz.3中的xyz之后用逗号替换该点并在abc.3中将其保留在abc之后?

5 个答案:

答案 0 :(得分:1)

类似的东西(对不起,我用javascript做了这个,并没有看到PHP标签)。

var stringWithPoint = 'word1="abc.3" word2="xyz.3"';
var nopoint = stringWithPoint.replace('xyz.3', 'xyz3');

在php中

$str = 'word1="abc.3" word2="xyz.3"';

echo str_replace('xyz.3', 'xyz3', $str);

答案 1 :(得分:1)

您可以使用PHP的字符串函数删除点(。)。

str_replace(".", "", $word2);

答案 2 :(得分:1)

您提供了一个示例,但未提供有关何时应修改内容以及何时应保持相同内容的说明。解决方案可能很简单:

str_replace("xyz.", "xyz", $input);

但是如果你明确想要一个更明确的匹配,比如在完全停止后需要一个数字,那么:

preg_replace("/xyz\.([0-9])+/", 'xyz\${1}', $input);

(未经测试)

答案 3 :(得分:1)

这取决于替换的标准是什么。 您可以将字符串拆分为多个部分(使用explode或preg_split),然后在某些部分替换点(例如str_replace),然后将它们连接在一起(内部)。

答案 4 :(得分:1)

怎么样:

$string = 'word1="abc.3" word2="xyz.3"';
echo preg_replace('/\.([^.]+)$/', ',$1', $string);

<强>输出:

word1="abc.3" word2="xyz,3"