Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 split regex-字符的任意组合_Java_Regex - Fatal编程技术网

java split regex-字符的任意组合

java split regex-字符的任意组合,java,regex,Java,Regex,我正在使用3个字符拆分字符串:空格、破折号和逗号 我想要的是能够使用这3个字符的任意组合进行拆分,例如: -,(破折号后接逗号)或,(逗号后接2破折号)或-,-(破折号空格逗号空格破折号)等 这给了我一个5长度的数组:[“扇形”、“扇形”、“18B”、“Dwarka”] 我想要一个3长度的数组:[“扇区”、“18B”、“Dwarka”] 如何编写正则表达式?您可以使用“(\\s |,|-)+”作为正则表达式模式 String address = "Sector -18B, Dwarka"; St

我正在使用3个字符拆分字符串:空格、破折号和逗号

我想要的是能够使用这3个字符的任意组合进行拆分,例如:

-,
(破折号后接逗号)或
(逗号后接2破折号)或
-,-
(破折号空格逗号空格破折号)等

这给了我一个5长度的数组:[“扇形”、“扇形”、“18B”、“Dwarka”]

我想要一个3长度的数组:[“扇区”、“18B”、“Dwarka”]

如何编写正则表达式?

您可以使用
“(\\s |,|-)+”
作为正则表达式模式

String address = "Sector -18B, Dwarka";
String[] addressParts = address.split("(\\s|,|-)+");
for (String part : addressParts) 
    System.out.println(part + " - " + part.isEmpty());
输出:

Sector - false
18B - false
Dwarka - false

[\\s,-]+
将执行以下操作job@HamZa-将其作为答案并接受代表;-)@芭丝谢芭:如果我那样做了,我会回答:)@Hamza-我想为你的行为推荐一个“高贵”的徽章;当然是黄金级别。@HamZa:dunnit,以这个问题为例。在字符类中,
被视为一个文本
,这意味着它并不意味着“或”,它实际上会匹配
。所以你还有另一个选择:使用
(\\s |,|-)+
我同意。。谢谢你指出我们应该用括号
Sector - false
18B - false
Dwarka - false
String address = "Sector -18B, Dwarka";
String[] addressParts = address.split("[\\s,-]+");
for (String part : addressParts){ 
System.out.println(part + " - " + part.isEmpty());
}