在最后一个数字后截断一个字符串

时间:2014-08-17 19:58:12

标签: php

我想截断一个字符串以删除最后一个数字后面的任何内容。例如:

GB67 7HG - 我希望它截断为GB67 7。我最好还是喜欢字符串中的空格。

我不确定从哪里开始!

3 个答案:

答案 0 :(得分:1)

如果您确定只有数字和字符,则可以使用rtrim修剪不必要的字符,例如$text = rtrim($text, 'A..Z ');

此功能的更多内容:http://php.net//manual/bg/function.rtrim.php

你也可以使用正则表达式,但是你需要一些正则表达式技能才能做到这一点。

答案 1 :(得分:1)

使用正则表达式的另一种解决方案

preg_match('/(.*?)(\d+)(?!.*\d)/', 'GB67 7HG', $matches);
print_r($matches);

输出:

Array
(
    [0] => GB67 7
    [1] => GB67 
    [2] => 7
)

PHP Demo | Regex Demo

答案 2 :(得分:0)

使用正则表达式可能是一个更干净的解决方案,但以下可能会有所帮助。只需找到最后一位数的索引并使用substr()。

$string = 'GB67 7HG';
$count = strlen($string);
$index = -1;
$i = 0;
while( $i < $count ) {
    if( ctype_digit($string[$i]) ) {
        $index = $i;
    }
    $i++;
}
if($index != -1) echo substr($string, 0, $index + 1);