我正在寻找一种从地址中删除属性编号的方法。
例如,地址可以是 - 56 Hello Road
我已经设法使用以下代码删除了该号码,并且有效
$meta_url = trim(str_replace(range(0,9),'', $row[property_address_1]));
但是,如果地址是56b Hello Road,则它离开b并返回 - b Hello Road
知道如何编辑当前代码以删除下一个相应的字母吗?
一种方法是使用正则表达式:
preg_replace('/[0-9]+[a-z]/', '', $row['property_address_1'])
该表达式的意思是:
-
[0-9]+
0-9 范围内的一个或多个字符,后跟 -
[a-z]
a-z 范围内的一个小写字符
首先,您可能希望在空格处拆分字符串,然后查看第一项是否符合某个条件:
<?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}
:最小 0 最多 2 个字符的字母数字字符
'b
:末尾的单词边界