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)
尝试这个
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 属性,匹配每种语言中的每个字母。