2

住所を処理していますが、番地を削除したいだけです。

123 Fake St

次の正規表現を使用します/[^a-z ]/i'。これは正常に機能し、次のようになります。

Fake St

しかし時々私は次のようなアドレスを持っています

M4 Western Distributor Fwy

M4パーツをどのように保持しますか?正規表現を実行すると、次のようになります。

M Western Distributor Fwy

助けていただければ幸いです、乾杯

4

3 に答える 3

1

使用する

/\b[^a-z ]+\b/i

代わりに正規表現として。これは、単語の境界で囲まれた1つ以上の非文字の出現に一致します。実際、数字だけを削除したい場合は、

/\b[\d]+\b/
于 2012-05-28T06:54:54.650 に答える
1

試す

/^[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"
于 2012-05-28T06:58:47.690 に答える
1

正規表現以外の方法も価値がある場合があります

$test="123 Fake St";
    $arr=explode(" ",$test);
    if(ctype_digit($arr[0])){
        $test=str_replace($arr[0],"",$test);
    }
echo $test;
于 2012-05-28T07:01:36.410 に答える