在notepad ++中正则表达式

时间:2013-09-06 11:59:23

标签: regex-lookarounds

我有这种文字 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]$)*

但这并没有给我我想要的结果。

任何人都可以帮我找到确切的正则表达式

1 个答案:

答案 0 :(得分: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]*)

  3. 这会将数据拆分为:

    1. ACORN HOME AND GARDEN

    2. 3870 Due West Road NW Marietta Georgia 30064

    3. 请注意,这不太适用于不同的地址格式,因为当它达到第一个十进制数字系列时会分成两组,在这种情况下,第一组十进制数字必须是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/