2

I am using below program to split my string.

public static void main(String[] args) {
    String test = "A1=CA2=BOA2=RA4=O";
    String data[] = test.split("[A-a]\\d{1,100}=");

    for (String str : data) {
      System.out.println("Split data:"+str);
    }      
}

//Output 
  Split data:
  Split data:C
  Split data:BO
  Split data:R
  Split data:O

//But I want output something like below :
  Split data:A1=C
  Split data:A2=BO
  Split data:A2=R
  Split data:A4=O 

How do I split my string to get output in the above way

Eng.Fouad
  • 115,165
  • 71
  • 313
  • 417
Shiladittya Chakraborty
  • 4,270
  • 8
  • 45
  • 94

1 Answers1

6

Use the positive look-ahead assertion ((?=)):

test.split("(?=[A-Z]\\d{1,100}=)");

This regex will match any zero-length string that is followed by (Capital letter), followed by a number consists of [1-100] digits, followed by = sign.

Output:

Split data:A1=C
Split data:A2=BO
Split data:A2=R
Split data:A4=O
Eng.Fouad
  • 115,165
  • 71
  • 313
  • 417