String.split()不适用于搜索逗号分隔项的正则表达式

时间:2012-03-12 03:31:45

标签: java regex

您能告诉我为什么String.matches()中使用的正则表达式模式不会使用String.split拆分给定字符串吗?

以下是代码:

String text = "sdf.an@dfgdfg.com;   sdfsdf@fdfd.erff";
String regex = "(\\b[\\w.%-]+@[\\w.]+\.[a-zA-Z]{2,4}\\b)([,;]\\s*\\b[\\w.%-]+@[\\w.]+\.[a-zA-Z]{2,4}\\b)*";
String [] emails = text.split(regex);

emails为空:(

2 个答案:

答案 0 :(得分:3)

我认为String.split需要一个分隔符而不是整个模式。

在你的情况下,你可以简单地把这个

text.split(";\\s*")

答案 1 :(得分:1)

为什么不使用正则表达式";\\s*"

String text = "sdf.an@dfgdfg.com;   sdfsdf@fdfd.erff";
String regex = ";\\s*";
String [] emails = text.split(regex);
for(String ss : emails) System.out.println(ss);

<强>输出:

sdf.an@dfgdfg.com
sdfsdf@fdfd.erff