Java (Regex?) split string between number/letter combination

前端 未结 5 1952
甜味超标
甜味超标 2021-01-05 08:44

I\'ve been looking through pages and pages of Google results but haven\'t come across anything that could help me.

What I\'m trying to do is split a string like

5条回答
  •  执笔经年
    2021-01-05 08:59

    Try this

    String s = "Bananas22Apples496Pears3";
    
    String[] res = s.replaceAll("(?<=\\p{L})(?=\\d)", ":").split("(?<=\\d)(?=\\p{L})");
        for (String t : res) {
            System.out.println(t);
        }
    

    The first step would be to replace the empty string with a ":", when on the left is a letter with the lookbehind assertion (?<=\\p{L}) and on the right is a digit, with the lookahead assertion (?=\\d).

    Then split the result, when on the left is a digit and on the right is a letter.

    \\p{L} is a Unicode property that matches every letter in every language.

提交回复
热议问题