Java(Regex?)在数字/字母组合之间拆分字符串

Tim*_*imr 7 java regex string split explode

我一直在查看Google搜索结果的页面和页面,但没有找到任何可以帮助我的内容.

我想要做的就是分割一个字符串Bananas22Apples496Pears3,并将其分解为某种可读格式.既然String.split()不能这样做,我想知道是否有人能指出我可以完成这个的正则表达式片段.

扩展一下:上面的字符串将被拆分为(String[]为简单起见):

{"Bananas:22", "Apples:496", "Pears:3"}
Run Code Online (Sandbox Code Playgroud)

ste*_*ema 4

尝试这个

String s = "Bananas22Apples496Pears3";

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

第一步是将空字符串替换为“:”,此时左侧是带有后向断言的 (?<=\\p{L})字母,右侧是带有前向断言的 (?=\\d)数字。

然后将结果分开,左边是数字,右边是字母。

\\p{L}是一个Unicode 属性,匹配每种语言中的每个字母。