【发布时间】:2014-08-17 19:58:12
【问题描述】:
我想截断一个字符串以删除最后一位数字之后的任何内容。例如:
GB67 7HG - 我希望它截断为GB67 7。最好还是希望字符串中的空格。
我不确定从哪里开始!
【问题讨论】:
-
试试 rtrim($text, 'A..Z');
标签: php
我想截断一个字符串以删除最后一位数字之后的任何内容。例如:
GB67 7HG - 我希望它截断为GB67 7。最好还是希望字符串中的空格。
我不确定从哪里开始!
【问题讨论】:
标签: php
使用正则表达式的另一种解决方案
preg_match('/(.*?)(\d+)(?!.*\d)/', 'GB67 7HG', $matches);
print_r($matches);
输出:
Array
(
[0] => GB67 7
[1] => GB67
[2] => 7
)
【讨论】:
如果您确定只有数字和字符,可以使用 rtrim 修剪不必要的字符,例如 $text = rtrim($text, 'A..Z ');
有关此功能的更多信息,请访问:http://php.net//manual/bg/function.rtrim.php
您也可以使用正则表达式,但是您需要一些正则表达式技能才能做到这一点。
【讨论】:
使用正则表达式可能有一个更简洁的解决方案,但也许以下内容会有所帮助。只需找到最后一位的索引并使用 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);
【讨论】: