将文本拆分为与以下正则表达式匹配的标记:\ w +(\。?\ w +)*

时间:2015-10-07 15:16:54

标签: regex string tokenize

我正在尝试将字符串拆分为与REGEX匹配的标记: (\\w+(\\.?\\w+)*)

例如:如果字符串是abc.com wyx-ujk:wxr.c那么

令牌1)abc.com

令牌2)wxy

令牌3)ujk

令牌4)wxr.c

但无法做到......

这是我的代码:

 String temp="abc.com wyx-ujk:wxr.c";

 Pattern pattern = Pattern.compile("\\w+(\\.?\\w+)*");
 Matcher matcher = pattern.matcher(temp);
 System.out.println(matcher.group());

1 个答案:

答案 0 :(得分:2)

此方法适用于您的测试用例:

String[] tokens = temp.split("[^\\w.]+");

而不是关注目标 的内容,而不是

一些测试代码JDK7:

System.out.println(Arrays.toString("abc.com wyx-ujk:wxr.c".split("[^\\w.]+")));

输出:

[abc.com, wyx, ujk, wxr.c]

和JDK8:

Arrays.stream("abc.com wyx-ujk:wxr.c".split("[^\\w.]+")).forEach(System.out::println);

输出:

abc.com
wyx
ujk
wxr.c