Php 从字符串中删除前面的数字/符号
我正在尝试用PHP编写一个函数,它查找字符串中的第一个字母,然后返回字符串的其余部分。例如,如果您有一个字符串: “8932?测试14字符串” 函数将返回 “测试14字符串” 我已经编写了以下函数来完成这项工作:Php 从字符串中删除前面的数字/符号,php,numbers,substring,Php,Numbers,Substring,我正在尝试用PHP编写一个函数,它查找字符串中的第一个字母,然后返回字符串的其余部分。例如,如果您有一个字符串: “8932?测试14字符串” 函数将返回 “测试14字符串” 我已经编写了以下函数来完成这项工作: function removenums($withnums) { $letters = str_split($withnums); $position = 0; foreach($letters as $
function removenums($withnums) {
$letters = str_split($withnums);
$position = 0;
foreach($letters as $letter) {
if(preg_match("/[a-zA-Z]/",$letter)) {
break;
}
$position++;
}
$withoutnums = substr($withnums,$position);
return $withoutnums;
}
然而,我只是在学习PHP,出于教育的考虑,我想知道有经验的人是否有更好的解决方案。欢迎所有回复。谢谢 您只需将
strop
与substr
echo substr($string,strpos($string,'?')+1);
你准备好出发了吗
请注意,您应该尽可能避免使用preg.*
函数,因为它们通常比更简单的str*
函数慢
看了你的评论之后
查找字符串中的第一个字母,然后
然后返回余数
假设OP的输入在他想要的文本之前总是有一个问号,你的建议几乎是正确的——但在提供的示例中,你似乎找到了一个额外的空格。是的,这是一个很好的解决方案,但是,在输入文本之前并不总是有问号。您需要确切地告诉我们它是如何成为所有可能的格式的。我们没有魔法对不起,字符串在第一个字母之前可以有任何可能的数字/符号组合。函数应该去掉前面的任何数字/符号。@Kurties:请阅读我的答案,我已经添加了您需要的解决方案。如果这对你有帮助,请考虑将此标记为答案。谢谢
echo preg_replace( '/^[^a-z]+/i','',$string );
function removenums($withnums)
{
return preg_replace('/^[^A-Za-z]+/', '', $withnums);
}
echo removenums('8932? Test 14 String');
// output: Test 14 String