Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java string.split-由多个字符分隔符分隔_Java_Regex - Fatal编程技术网

Java string.split-由多个字符分隔符分隔

Java string.split-由多个字符分隔符分隔,java,regex,Java,Regex,我想基于所有可能的分隔符(如逗号、冒号、分号、句点、空格、hiphens等)解析整个文件 假设我有一个假设的字符串行“Hi,X How are:anyyou?”我应该得到包含Hi,X,How,How,are,any和you项的输出数组 如何在String.split方法中指定所有这些分隔符 提前感谢。采用正则表达式,在本例中,您希望将非单词字符(regex\W)作为拆分,因此它只是: String input = "Hi,X How-how are:any you?"; String[] par

我想基于所有可能的分隔符(如逗号、冒号、分号、句点、空格、hiphens等)解析整个文件

假设我有一个假设的字符串行“Hi,X How are:anyyou?”我应该得到包含Hi,X,How,How,are,any和you项的输出数组

如何在String.split方法中指定所有这些分隔符

提前感谢。

采用正则表达式,在本例中,您希望将非单词字符(regex
\W
)作为拆分,因此它只是:

String input = "Hi,X How-how are:any you?";
String[] parts = input.split("[\\W]");
如果希望更明确,可以在表达式中使用精确的字符:

String[] parts = input.split("[,\\s\\-:\\?]");

为什么在上面的表达式中使用or ing运算符?它们有必要吗?@Hovercraft-没有,但对我来说,它更容易阅读,所以这就是我的选择。我自己的偏好是向新手展示正则表达式,而不需要不必要的混乱。YMMV@UmeshKacha:请看一下关于这个的教程部分:。拍摄整个教程是值得的。然后当完成这一步时,我最喜欢的是哪一步。@MarkElliot我很确定character类将匹配管道(
|
)字符,而不是将它们视为“或”指令。在这种情况下,这不是一个真正的问题,但是你应该意识到它并没有做你认为它在做的事情。它可能会在更复杂的代码中引起混乱和bug。