我想从这个字符串中提取所有地址。正则表达式应该是通用的。
输入字符串:
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 类在 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*表示空间任意次数。