我想截断一个字符串以删除最后一个数字后面的任何内容。例如:
GB67 7HG
- 我希望它截断为GB67 7
。我最好还是喜欢字符串中的空格。
我不确定从哪里开始!
答案 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
)
答案 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);