字符类减法

时间:2014-06-14 11:53:38

标签: java regex

我使用特定模式试图获得没有标点符号的句子。 我有这个:

 p = Pattern.compile("[\\p{Punct}\\s]+");
 String[] all = p.split("int a = 4;");

我得到了数组

all = {int, a, 4};

这很棒,但我希望我的模式也能保持" []"如果它存在例如:

String[] all = p.split("int[] a = 4;");

并获取

all = {int,[], a, 4};

这是我希望模式添加" []"没有其他的。 有办法吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

Pattern p = Pattern.compile("[[\\p{Punct}&&[^\\[\\]]]\\s]+");

[]个字符被视为标点字符。在拆分字符串时,此正则表达式将排除它们。