繁体   English   中英

正则表达式拆分字符串不适用于Java中的[[,,。\\\\ s]]

[英]Regex to Split String is not working well for “[,,.\\s]” in Java

我希望通过“,”或“,”(中文逗号)或“。”将字符串分成几组。 或任何空白字符(如空格或“ \\ n”)。

我是正则表达式的新手。 我写下面的测试用例:

    String str2="word1 , word2,,word3.word4 word5";
    String[] formated=str2.split("[,,.\\s]");
    for(int i=0;i<formated.length;i++){
        System.out.println("i="+i+ "   "+formated[i]);
    }

输出是:

i=0   word1
i=1   
i=2   
i=3   word2
i=4   
i=5   word3
i=6   word4
i=7   word5

当标牌聚集在一起时,为什么它不起作用? 当诸如“ ,,”之类的东西聚集在一起时,我是否还需要做更多的事情来使其成为一个整体的分裂?

你可以试试。 您需要添加+以匹配一个或多个。

[,,.\s]+

这是演示


量词

量词允许您指定要匹配number of occurrences 如果使用x+则模式会尝试尽可能匹配x

word1 , word2,,word3.word4 word5
     ^^^------All three characters are matched at a time

word1 , word2,,word3.word4 word5
             ^^------both characters are matched at a time

如果不使用+则仅使用单个字符来分割字符串。

在此处输入图片说明

使用以下regExp进行split ,因为它将允许您分割[]指定的一个或多个字符

[,,.\\s]+
  • []匹配括号中的String中的任何单个字符
  • +匹配一个或多个事件。

没有+它将像这样溢出

word1 , word2,,word3.word4 word5
     ^^^     ^^^     ^     ^
     123     456     7     8

因此,分割后总共将有8 String ,但是当加上plus ,它将把123456计为一个,因为现在您的regExp能够匹配一个或多个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM