地址提取

Address Extraction

我想从这个字符串中提取所有地址。正则表达式应该是通用的。

输入字符串:

ABC MEDICAL CENTER
PO BOX 134
WILSON, NC 27234
SIVER BANK
4235 EXECUTIVE SQ STE 140
LAY JOLLA GA 22037ABC MEDICAL CENTER
PO BOX 134
WILSON, NC 27234
ABC MEDICAL CENTER
P.O.BOX 1624
MILSON, NC 2084
ABC MEDICAL CENTER
P.O.BOX 1689
MILSON, NC 20834
ABC MEDICAL CENTER
P.O.BOX 1625
MILSON, NG 27812

您可以使用 String.split() 函数或 StringTokenizer class 在 Java 中拆分逗号分隔的字符串。

import java.util.Arrays;   
public class Main
{ 
  public static void main(String[] args)     
     {   
       String CSV = "Google,Apple,Microsoft";   
       String[] values = CSV.split(",");   
       System.out.println(Arrays.toString(values));   
     } 
}
Output :[Google, Apple, Microsoft]

您还可以通过拆分逗号分隔的字符串来创建 ArrayList,如下所示:

ArrayList list = new ArrayList(Arrays.asList(values)

如果您的逗号分隔字符串在值之间也包含白色space,那么您可以使用以下正则表达式来拆分 CSV 字符串并删除前导和尾随的白色space s 来自个人价值观。

String CSV = "Google, Apple, Microsoft";
String[] values = CSV.split("\s*,\s*");
System.out.println(Arrays.toString(values));

此处 \s* 是用于查找零个或多个 space 的正则表达式。
\s 是查找 whitespace 的元字符,包括制表符,因为 \(正斜杠)需要在 Java 中转义,它变成 \ (双斜杠)和 \s变成\s。 现在来到 *(星号或星号),它是正则表达式中的另一个特殊字符,表示任意次数。所以 \\s* 表示 space 任意次数。