如何将字母向前或向后移动一个字符串。?

时间:2013-08-03 08:12:06

标签: php string

我想要的东西可以将字母串在一个位置向后或向前移动。

像在

中检测字符串中的小i一样
ik ikdig inchf 

和输出

ki kidgi nichf

并反过来......

我是否也可以添加一些假设,例如i之后的字母后面是否有特定字母,如果L后面的字符ikL ikgLkf iJLnm后面有i {1}},它应在i后移动L

其实我正在尝试将旁遮普语字体设为Unicode转换器。在旁遮普语字体中,像i这样的元音总是在字母之前,在unicode中,vowvel总是在字母之后。有时,有变音符号,所以元音是在字母和变音符之后......

请帮助。

2 个答案:

答案 0 :(得分:1)

问题不是很清楚,但我认为以下应该有效:

$str = 'ik ikdig inchf i9';
$repl = preg_replace('/(i)(\p{L})/u', '\2\1', $str);
echo '[' . $repl . "]\n";

<强>输出:

[ki kidgi nichf i9]

我使用了\p{L}u修饰符来确保也支持unicode字符。

答案 1 :(得分:-1)

你应该找到目标字符和单词的位置 然后在字符串

中使用索引修改位置
$temp=$string[$ipos];
$string[$ipos]=$string[$ipos+1];
$string[$ipos+1]=$temp;

如果你想改变位置字,你应该注意字长