php从字符串和字母中删除数字,如果它在那里

时间:2015-01-23 10:13:38

标签: php str-replace

我正在寻找一种从地址中删除财产编号的方法。

例如地址可能是 - 56 Hello Road

我设法使用以下代码删除号码并且有效

            $meta_url = trim(str_replace(range(0,9),'', $row[property_address_1]));

但是如果地址是56b Hello Road,它会离开b并返回-b Hello Road

知道如何编辑我当前的代码以删除下一个相应的字母吗?

2 个答案:

答案 0 :(得分:2)

一种方法是使用regular expression

preg_replace('/[0-9]+[a-z]/', '', $row['property_address_1'])

表达意味着:

  • [0-9]+ 0-9范围内的一个或多个字符,后跟
  • [a-z] a-z
  • 范围内的一个小写字符

答案 1 :(得分:0)

首先,您可能希望将字符串拆分为空格,然后查看第一项是否符合某个条件:

<?php 

    $addressParts = explode(" ",$property_address);
    if(preg_match('/\b[0-9]+[a-z]{0,2}\b/', $addressParts[0], $matches)){
        unset($addressParts[0]);
    }
    $property_address = implode(" ",$addressParts);

?>

/\b[0-9]+[a-z]{0,2}\b/表示:

\b:开始时的字边界

[0-9]+:任意长度的数字字符

[a-z]{0,2}:min 0最多2个字母数字字符字符

\b:结尾处的字边界