删除最后一个数值后的所有内容

时间:2015-07-09 10:42:17

标签: php

我正在尝试使用一个函数来删除PHP中字符串的最后一个数值之后的所有内容。

  1. 字符串示例1:

    input: "test test 12C"
    output: "test test 12"
    
  2. 字符串示例2:

    input: "test dddd 3323fff new 83dds"
    output: "test dddd 3323fff new 83"
    
  3. 我该怎么做这个PHP?

    我已经尝试了以下代码,但它不起作用,我对regex并不是那么好:

    $address = preg_replace('/[0-9]+$/', '', $row['address']);
    

2 个答案:

答案 0 :(得分:2)

您可以使用常规表达式执行此操作:

.*[0-9]

。* 匹配任何字符(包括无)

[0-9] 匹配任何数字

所以你要告诉正则表达式匹配一个以任何字符后跟一个数字字符开头的字符串。

<?php                                                                       
  $str = 'test dddd 3323fff new 83dds';
  preg_match('/.*[0-9]/', $str, $result);
  print_r($result[0]);
?>

答案 1 :(得分:0)

这可以通过正则表达式很好地完成。只需稍微调整问题的措辞,即你想要保存所有内容,包括&#34;最后一个数值 在这种情况下,RegEx成为:

$regexp = "/^(.*\\d)\\D∕";

这会将RegEx绑定到开头(^),然后匹配所有内容(.*),直到最后一位数字(\d),后面跟一个非数字( \D)。模式的一部分周围的parantheses告诉RegEx引擎您要保存它们之间的所有内容。这被称为&#34;捕获子组&#34;。

查看preg_match()的PHP手册,了解有关如何使用该正则表达式的更多信息。