住所を処理していますが、番地を削除したいだけです。
123 Fake St
次の正規表現を使用します/[^a-z ]/i'
。これは正常に機能し、次のようになります。
Fake St
しかし時々私は次のようなアドレスを持っています
M4 Western Distributor Fwy
M4パーツをどのように保持しますか?正規表現を実行すると、次のようになります。
M Western Distributor Fwy
助けていただければ幸いです、乾杯
住所を処理していますが、番地を削除したいだけです。
123 Fake St
次の正規表現を使用します/[^a-z ]/i'
。これは正常に機能し、次のようになります。
Fake St
しかし時々私は次のようなアドレスを持っています
M4 Western Distributor Fwy
M4パーツをどのように保持しますか?正規表現を実行すると、次のようになります。
M Western Distributor Fwy
助けていただければ幸いです、乾杯
使用する
/\b[^a-z ]+\b/i
代わりに正規表現として。これは、単語の境界で囲まれた1つ以上の非文字の出現に一致します。実際、数字だけを削除したい場合は、
/\b[\d]+\b/
試す
/^[0-9 ]+(?=[^\d]+)/i
これは、数字以外の数字が後に続くすべての数字と一致します。テスト:
$subject = '123 Fake St';
var_dump(preg_replace('/^[0-9 ]+(?=[^\d]+)/i', '', $subject));
$subject = 'M4 Western Distributor Fwy';
var_dump(preg_replace('/^[0-9 ]+(?=[^\d]+)/i', '', $subject));
出力:
string(7) "Fake St"
string(26) "M4 Western Distributor Fwy"
正規表現以外の方法も価値がある場合があります
$test="123 Fake St";
$arr=explode(" ",$test);
if(ctype_digit($arr[0])){
$test=str_replace($arr[0],"",$test);
}
echo $test;