0

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

i就像在一个字符串中检测一个小的一样

ik ikdig inchf 

和输出

ki kidgi nichf

并且也反转...

我是否也可以添加一些假设,例如在字母之后是否有特定字母,例如字符串中的单词 next之后i是否有 a ,它应该移到之后。LikL ikgLkf iJLnmiiL

实际上我正在尝试将旁遮普字体制作为 Unicode 转换器。在旁遮普字体中,元音 likei总是在字母之前,而在 unicode 中,元音总是在字母之后。有时,有变音符号,所以元音在字母和变音符号之后......

请帮忙。

4

2 回答 2

2

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

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

输出:

[ki kidgi nichf i9]

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

于 2013-08-03T09:15:41.607 回答
-1

你应该找到目标字符和单词的位置,然后用字符串中的索引改变位置

$temp=$string[$ipos];
$string[$ipos]=$string[$ipos+1];
$string[$ipos+1]=$temp;

如果你想改变位置词你应该注意词长度

于 2013-08-03T08:18:33.477 回答