我想要的东西可以将字母串在一个位置向后或向前移动。
像在
中检测字符串中的小i
一样
ik ikdig inchf
和输出
ki kidgi nichf
并反过来......
我是否也可以添加一些假设,例如i
之后的字母后面是否有特定字母,如果L
后面的字符ikL ikgLkf iJLnm
后面有i
{1}},它应在i
后移动L
。
其实我正在尝试将旁遮普语字体设为Unicode转换器。在旁遮普语字体中,像i
这样的元音总是在字母之前,在unicode中,vowvel总是在字母之后。有时,有变音符号,所以元音是在字母和变音符之后......
请帮助。
答案 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;
如果你想改变位置字,你应该注意字长