在PHP中替换特定位置的字符串?

时间:2014-10-14 05:38:54

标签: php regex string

我必须替换字符串,但它在PHP中很简单但我的字符串就像这些我给你看的那样。请任何人帮助我。

$string = "#x93F;#x902;#x91C";  

上面的字符串我想用

替换它
 #x91C;#x93F;#x902;

但是这些字符串中的一件事取代了。我们不知道$ string #x91C的最后一个字;

任何单词都会出现在该字符串前面的位置。我怎么能解决这个问题,请任何人帮助我。

2 个答案:

答案 0 :(得分:0)

使用捕获组捕获所需的字符。稍后您可以将匹配的字符替换为组内的字符。

<强>正则表达式:

^([^;]*);([^;]*);([^;]*);$

替换字符串:

$3;$1;$2;

DEMO

$string = "#x93F;#x902;#x91C;";
echo preg_replace('~^([^;]*);([^;]*);([^;]*);$~', '$3;$1;$2;', $string);

<强>输出:

#x91C;#x93F;#x902;

答案 1 :(得分:0)

((?:[^;]+;)*)([^;]+)(?=$)

替换为$2;$1

参见演示。

http://regex101.com/r/uH3tP3/9