我想要一个可以将字符串中的字母前后移动一个位置的东西。
像一样检测字符串中的小i
ik ikdig inchf
并输出
ki kidgi nichf
也反过来。。。
我还可以添加一些假设吗?比如,如果在i
之后的字母后面有一个特定的字母,比如,如果字符串ikL ikgLkf iJLnm
中在i
旁边的单词之后有一个L
,它应该将i
移动到L
之后。
事实上,我正在尝试制作一个旁遮普字体到Unicode转换器。在旁遮普字体中,像i
这样的元音总是在字母之前,而在unicode中,vowvel总是在字母之后。有时,有变音符号,所以元音在字母后面,变音符号。。。
请帮忙。
问题不太清楚,但我认为以下内容应该有效:
$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字符
您应该找到目标字符和单词的位置然后用字符串中的索引改变位置
$temp=$string[$ipos];
$string[$ipos]=$string[$ipos+1];
$string[$ipos+1]=$temp;
如果你想改变位置,你应该注意单词leght