5

我正在尝试在 Java 中拆分字符串。拆分应该出现在两个字符之间,其中一个是字母字符 (az, AZ),另一个是数字字符 (0-9)。例如:

String s = "abc123def456ghi789jkl";
String[] parts = s.split(regex);
System.out.println(Arrays.deepToString(parts));

输出应该是[abc, 123, def, 456, ghi, 789, jkl]. 有人可以用匹配的正则表达式帮助我吗?

提前致谢!

4

1 回答 1

9

您可以使用前瞻和后视的组合:

String s = "abc123def456ghi789jkl";
String regex = "(?<=\\d)(?=[a-z])|(?<=[a-z])(?=\\d)";
String[] parts = s.split(regex);
System.out.println(Arrays.deepToString(parts));
于 2012-09-13T08:33:53.387 回答