【发布时间】:2010-04-28 19:16:24
【问题描述】:
我需要能够通过逗号、分号或空格(或三者的混合)来分割输入字符串。我还想将输入中的多个连续定界符视为单个定界符。到目前为止,这是我所拥有的:
String regex = "[,;\\s]+";
return input.split(regex);
这有效,除非输入字符串以一个分隔符开头,在这种情况下,结果数组的第一个元素是一个空字符串。我不希望我的结果有空字符串,所以像 ",,,,ZERO; , ;;ONE ,TWO;" 这样的东西只返回一个包含大写字符串的三元素数组。
有没有比在调用 String.split 之前去除与我的正则表达式匹配的任何前导字符更好的方法?
提前致谢!
【问题讨论】:
-
不作为答案发布,因为我不记得 Java 正则表达式 API,但您可以简单地搜索非定界符字符串,而不是在定界符上拆分,例如使用像
[^,;\s]+这样的正则表达式。 -
显然相同的问题,更新但更好接受的答案:stackoverflow.com/questions/9389503/…