我试图写一个简单的程序,它需要every 4th letter
(不是字符)在一个字符串(不计算空格),并改变case
它的相反(如果它在低,改变它的高,反之亦然)。
我目前掌握的情况:
echo preg_replace_callback('/.{5}/', function ($matches){
return ucfirst($matches[0]);
}, $strInput);
样品输入:
The sky is blue
预期结果:
The Sky iS bluE
# ^4th ^8th ^12th
4条答案
按热度按时间zfycwa2u1#
pqwbnv8z2#
试试这个:
它将字符串第二个字符大写
wlp8pajw3#
这段代码满足了你的所有条件。
编辑:
我会用
忽略字符串中的空格。但由于你希望它们在输出中保持原样,所以不得不应用上面的逻辑。
huus2vyu4#
在匹配每第4个字母后,执行Invert case of all letters in a string (uppercase to lowercase and lowercase to uppercase)中的任何大小写切换技术。
\K
告诉tegex引擎忘记之前匹配的字符。代码:(Demo)
此答案不是精心设计的多字节安全答案。某些多字节字符本身没有可切换的大小写字母。