-1

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

输入字符串:

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
4

1 回答 1

0

您可以使用 String.split() 函数或 StringTokenizer 类在 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)

如果您的逗号分隔的字符串还包含值之间的空格,那么您可以使用以下正则表达式来拆分 CSV 字符串以及从各个值中删除前导和尾随空格。

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

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

于 2020-05-26T13:32:51.947 回答