java - String.split() - 在第一个定界符之前匹配前导空字符串?

标签 java regex

我需要能够按逗号、分号或空格(或三者的混合)拆分输入字符串。我还想将输入中的多个连续定界符视为单个定界符。这是我到目前为止所拥有的:

String regex = "[,;\\s]+";    
return input.split(regex);

这是可行的,除了当输入字符串以其中一个定界字符开头时,在这种情况下,结果数组的第一个元素是一个空字符串。我不希望我的结果有空字符串,所以类似“,,,,ZERO; , ;;ONE ,TWO;,” 的结果只返回一个包含大写字符串的三元素数组。

有没有比在调用 String.split 之前删除与我的正则表达式匹配的任何前导字符更好的方法?

提前致谢!

最佳答案

不,没有。您只能通过将 0 作为第二个参数提供给 String 的 split() 方法来忽略尾随分隔符:

return input.split(regex, 0);

但对于前导分隔符,您必须先去除它们:

return input.replaceFirst("^"+regex, "").split(regex, 0);

关于java - String.split() - 在第一个定界符之前匹配前导空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732461/

相关文章:

java - 将值传递给数组列表

java - 在运行时确定泛型的翻译类型

java - java中的正则表达式条件替换但在替换字符串中不在正则表达式本身中

regex - R:从 .txt 中读取引号,不带反斜杠

javascript - URL 检查正则表达式在浏览器中无限运行

ruby - Ruby 中的正则表达式

javascript - 使用变量在 node.js 应用程序中执行正则表达式 Mongo 搜索

java - 在制作电子商务网站的搜索引擎时,如何处理空格位置错误的搜索查询?

java - Quarkus 响应式(Reactive)客户端真的是响应式(Reactive)的吗?

java - Swing 文本字段中的文本颜色更改延迟