【问题标题】:Split String if it has number拆分字符串,如果它有数字
【发布时间】:2015-02-26 04:14:07
【问题描述】:

大家好,我已经有一段时间没有问另一个问题了,

我有这个由名字和数字组成的字符串 例如。

String myString = "give11arrow123test2356read809cell1245cable1257give222..."

现在我要做的是在有数字时将其拆分

我必须拆分它才能得到这样的结果

give11, arrow123, test2356, read809, cell1245, cable1257, give222, ....

我可以使用此代码,但找不到正确的正则表达式

String[] arrayString = myString.split("Regex")

感谢您的帮助。

【问题讨论】:

    标签: java android regex split


    【解决方案1】:

    您可以使用lookarounds 的组合来拆分您的字符串。

    Lookarounds 是零宽度的断言。它们不消耗字符串上的任何字符。零宽度的点是验证一个正则表达式是否可以或不能匹配向前或从当前位置向后看,而不将它们添加到整体匹配中。

    String s = "give11arrow123test2356read809cell1245cable1257give222...";
    String[] parts = s.split("(?<=\\d)(?=\\D)");
    System.out.println(Arrays.toString(parts));
    

    输出

    [give11, arrow123, test2356, read809, cell1245, cable1257, give222, ...]
    

    【讨论】:

      【解决方案2】:

      使用此正则表达式进行拆分

      String regex = "(?<=\\d)(?=\\D)";
      

      【讨论】:

        【解决方案3】:

        我不熟悉在 java 中使用正则表达式,但这个表达式符合您在 www.rubular.com 上的需要

        ([A-Za-z]+[0-9]+)
        

        【讨论】:

        • String.split() 函数需要一个正则表达式来匹配 String 数组中返回的字符串,因此这个正则表达式不适用于此目的。
        猜你喜欢
        • 2015-02-20
        • 1970-01-01
        • 2013-08-03
        • 2022-12-08
        • 2020-12-01
        • 1970-01-01
        • 2021-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多