【发布时间】:2021-04-02 13:16:43
【问题描述】:
我们的目标是从字符串$a="NewYork" 中获取新的不带小写字母且位于大写字母之前的字符串。
在这个例子中,我们应该得到输出“NeYork”
我试图通过 ASCII 表中大小写字母的位置来做到这一点,但它不起作用。我不确定是否可以通过 ASCII 表中的位置以类似的方式执行此操作。
function delete_char($a)
{
global $b;
$a = 'NewYork';
for($i =0; $i<strlen($a); $i++)
{
if( ord($a[$i])< ord($a[$i+1])){//this solves only part of a problem
chop($a,'$a[$i]');
}
else{
$b.=$a[$i];
}
}
return $b;
}
【问题讨论】:
-
所有正则表达式的答案都使一项简单的任务变得复杂。
-
@nice 是什么意思?
-
正则表达式使这项任务比循环简单得多。
-
@mickmackusa 追求可读解决方案的未来研究人员会假设这项任务比实际看起来更复杂,但事实并非如此。正则表达式一个衬里很棒,但您宁愿将其添加为后续解决方案,而不是作为唯一解决方案,并向 OP 解释他在循环中的初始比较中缺少什么。
标签: php string ascii lowercase