Java组合正则表达式值

时间:2015-10-16 06:35:36

标签: java regex

我试图弄清楚如何将正则表达式值组合起来做两件事 1)删除所有空格 2)删除所有标点符号

现在我正在使用

splitWords = (currentLine.split("\\s+")); 

这会从我正在阅读的文件中删除所有空格,现在如何添加标点符号?根据API / p删除所有标点符号。

更新: 对不起,我忘了提到我正在使用split,因为我在一个文件中用空格分割然后将它们添加到一个数组中,所以例如:你好,你在数组中如何变成:arr [0] =你好,arr [1]如何,arr [2] =是..等等。但是我不希望数组中的元素有标点符号。

2 个答案:

答案 0 :(得分:0)

如果要替换标点符号和空格,那么为什么要使用split方法。
像这样使用 - currentLine.replaceAll("\\s+|[<punctuation marks>]+", "")

其中<punctuation marks>都是标点符号。即[\\!,\\.\\?]

答案 1 :(得分:0)

您可以在字符类中组合多个字符类:

"[\\s\\p{Punct}]+" // Whitespace + Punctuation (POSIX)

对于unicode版本,请使用:

"[\\s\\pP]+" // Whitespace + Punctuation (Connector,Dash,Open,Close,InitialQuote,FinalQuote,Other)

或:

"[\\pZ\\pP]+" // Separator (Line,Paragraph,Space) + Punctuation (...)

如果您只想删除字符,则无需使用split()

// Returns "HesaidItsaniceworld"
"He said: \"It's a nice world\".".replaceAll("[\\s\\p{Punct}]+", "");