2016-04-25 13 views
1

私は、Googleマップisnのように見えるので、人の住所をフォームに入力するプロセスを高速化するために、実際のハウスナンバーには特に正確ですが、選択されたロケーションにハウスナンバーをオーバーライド/プリペンドする機能が追加されました。ここで 正規表現 - 文字と数字の両方が含まれていると仮定して最初の空白文字の前にすべてを選択

私は地図上の場所を選択し、それが返されます...簡単な例です:に住んでいないフォームに記入した人を想定し、しかし、素晴らしいです 13B Main Street, London, L0N D0N, United Kingdom

13Bしかし13A、私は文字列のこのセクションをオーバーライド/置き換えるために正規表現を使用しようとしています。私はGoogleマップが時々いない場合REPLACED StreetになるでしょうMain Streetを意味する建物番号を返さないことに気づいまで、再びうまく働いた最初の空白文字までの最初の単語またはすべてを選択/([^\s]+)/

は、私は現在、以下の持っています建物番号が返されます。

基本的に、次の条件を満たす正規表現を作成しようとしています。

これは最初の単語(空白文字の前)で、 は単なる数字でも文字の両方でもない組み合わせでなければなりません。

ありがとうございました!

また、答えを投稿しているかどうか尋ねるのが苦手でもない場合、正規表現がどのように構築され、どの部分が何をチェックしているかを少し説明することができます。ありがとう!

答えて

1

あなたが最初の空白文字の前の数字が含まれている必要があり、テキストの一部だけを一致させるために、この正規表現を使用することができます。

/^[a-zA-Z]*\d[a-zA-Z\d]*(?=\s)/ 

RegEx Demo

+0

@Connor:これはうまくいったのですか? – anubhava

0

この正規表現

/^(^\d+\w*\s)/

が一致します任意の桁数(少なくとも1つ)に続いて任意の数の単語文字(includi ngゼロ)の後にスペースが続きます。

Demo

+0

@anubhavaが与える答えとは異なり、鉱山は数字で始まる家の番号を主張するので、 "a1"と一致しません。 –

0

ひとつのアイデアは、それが前の空白の世話をします/^\s*[\w-]*\d+[\w-]*/であり、そのようなD12、12D、D12または12-C

としてアドレス形式試合にスペースを含めるするのはあなた次第か