Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何子字符串字符串,直到字符不是数字_Php - Fatal编程技术网

Php 如何子字符串字符串,直到字符不是数字

Php 如何子字符串字符串,直到字符不是数字,php,Php,有像 $string ="1 something here"; $string2=" 345 other string"; 如何删除作为数字的第一个字符 我知道有一个函数 $str = "The quick brown fox jumps over the lazy dog." $str2 = substr($str, 4); 这将删除前4个字符。您可以使用正则表达式: $pattern = '/^([0-9 ]+)(.*)$/'; echo preg_replace($pattern,

有像

$string ="1 something here";
$string2=" 345 other string";
如何删除作为数字的第一个字符

我知道有一个函数

$str = "The quick brown fox jumps over the lazy dog."
$str2 = substr($str, 4);  

这将删除前4个字符。

您可以使用正则表达式:

$pattern = '/^([0-9 ]+)(.*)$/';
echo preg_replace($pattern, '$2', trim($string2));

使用regexp可以非常简单地执行此操作,如下所示:

<?php
      $string ="1 something here";
      $string2=" 345 other string";

      //Pattern matches every number and space char in the beginning of the string
      $pattern = "/^([\s0-9]*)/";

      //echos output
      echo preg_replace($pattern, "",$string);
      echo preg_replace($pattern, "",$string2);
?>

不带正则表达式:

function x($str){
   for($i=0;$i<strlen($str);$i++){
      if(is_numeric ($str{$i}) )
         return substr($str,0, $i);
                 //or substr($str, $i+1); to get from the number until end
   }
   return $str;
}
函数x($str){
对于($i=0;$i使用正则表达式而不是substr,它将为您提供更细粒度的控制。您可以使用preg_replace()之类的工具来完成此操作。这是一个很棒的正则表达式备忘单,可以帮助您入门,如果您需要更多帮助,请告诉我:)