java 如何使用正则表达式 切一个字符串 例如 ‘1.0e10uf’ 分割出 1.0e10 和uf , ‘1cm’ 分割出 1 和cm
时间: 2024-05-21 08:11:45 浏览: 104
java 正则表达式获取两个字符中间的字符串方法
可以使用Java中的split()方法和正则表达式来解决这个问题。以下是示例代码:
String s1 = "1.0e10uf";
String s2 = "1cm";
String[] parts1 = s1.split("(?<=\\d)(?=[a-zA-Z])");
String[] parts2 = s2.split("(?<=\\d)(?=[a-zA-Z])");
System.out.println(Arrays.toString(parts1));
System.out.println(Arrays.toString(parts2));
输出结果为:
[1.0e10, uf]
[1, cm]
解释一下这个正则表达式:(?<=\d)(?=[a-zA-Z])
(?<=\d)表示要求分隔符的前面必须是数字(即数字后面的位置),并且不包含这个数字在分隔结果中。
(?=[a-zA-Z])表示要求分隔符的后面必须是字母(不区分大小写),并且不包含这个字母在分隔结果中。这个正则表达式实际上是一个零宽度正预测先行断言(lookahead assertion),表示只要前面是数字,后面是字母就是分隔符。
阅读全文