5

Javaで文字列を分割しようとしています。分割は、一方が英字 (az、AZ) でもう一方が数字 (0-9) である 2 つの文字の間で発生する必要があります。例えば:

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 に答える