-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]*)$

这包含两个捕获组:

  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

请注意,这不太可能适用于不同的地址格式,因为当它遇到第一组十进制数字时它会分成两组,并且在这种情况下,第一组十进制数字必须是 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 回答