-2

私はこの種のテキストを持っています ACORN HOME AND GARDEN 3870 Due West Road NW Marietta Georgia 30064 テキストを以下のようにしたい

ACORN HOME AND GARDEN
3870 Due West Road NW Marietta Georgia 30064

正規表現を書いてみた

^([A-Z]$)*

しかし、これは私が望む結果を与えません。

正確な正規表現を見つけるのを手伝ってくれる人はいますか

4

1 に答える 1

0

これを試すことができます:

^([A-Za-z\s]*)(\d{4}[A-Za-z0-9\s\d]*)$

これには、次の 2 つのキャプチャ グループが含まれます。

  1. ([A-Za-z\s]*)

  2. (\d{4}[A-Za-z0-9\s\d]*)

これにより、データが次のように分割されます。

  1. ACORN HOME AND GARDEN

  2. 3870 Due West Road NW Marietta Georgia 30064

これは、10 進数の最初の一連の数字にヒットしたときに 2 つのグループに分割され、この場合、分割が発生するためには 4 桁の長さでなければならないため、異なるアドレス形式では機能しない可能性が高いことに注意してください。

この種の情報は非常に不規則であるため、分割するのは難しいでしょう。正規表現は、適切にフォーマットされたデータで最適に機能します。

役立つツールを次に示します。

http://www.regexper.com/

http://www.regexpal.com/

jsFiddle の例を次に示します。

HTML

<span id="out"></span>

JavaScript

$(document).ready(function() {
    var addr = "ACORN HOME AND GARDEN 3870 Due West Road NW Marietta Georgia 30064";
    var regex = /^([A-Za-z\s]*)(\d{4}[A-Za-z0-9\s\d]*)$/;
    // Try changing the index [0] to [1] or [2] to see a different result.
    $("#out").text(regex.exec(addr)[0]);
});

ここで試してください:http://jsfiddle.net/sNEZV/

于 2013-09-06T12:10:01.173 に答える