【问题标题】:Java string.split - by multiple character delimiter [duplicate]Java string.split - 由多个字符分隔符[重复]
【发布时间】:2011-11-21 12:03:55
【问题描述】:

我想根据所有可能的分隔符(如逗号、冒号、分号、句点、空格、连字符等)解析整个文件。

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

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

提前致谢。

【问题讨论】:

    标签: java regex


    【解决方案1】:

    String.split 采用正则表达式,在这种情况下,您希望非单词字符(正则表达式 \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:请查看教程部分:predefined character classes。拍摄整个教程是值得的。然后当完成这个,毕业到this one 这是我最喜欢的。
    • @MarkElliot 我相当确定字符类将匹配管道 (|) 字符,而不是将它们视为“或”指令。在这种情况下,这并不是一个真正的问题,但您应该意识到它并没有按照您的想法做。它可能会在更复杂的代码中引起混乱和错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2011-08-25
    • 2023-03-13
    相关资源
    最近更新 更多