Can anyone help where I am doing wrong?
My sample text :
{[|Name:A|Class:1|Sex:Male|][|Name:B|Class:2|Sex:Female|][|Name:C|Class:3|Sex:Male|]}
Expected output:
|Name:A|Class:1|Sex:Male|
Name:A
Class:1
Sex:Male
|Name:B|Class:2|Sex:Female|
Name:B
Class:2
Sex:Female
|Name:C|Class:3|Sex:Male|
Name:C
Class:3
Sex:Male
Current output :
|Name:A|Class:1|Sex:Male|
Name:A
Sex:Male
|Name:B|Class:2|Sex:Female|
Name:B
Sex:Female
|Name:C|Class:3|Sex:Male|
Name:C
Sex:Male
My program:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Regex {
public static void main(String[] args) {
String example = "{[|Name:A|Class:1|Sex:Male|][|Name:B|Class:2|Sex:Female|][|Name:C|Class:3|Sex:Male|]}";
Pattern curlyBraces = Pattern.compile("\\[(.*?)\\]");
Matcher m = curlyBraces.matcher(example);
while (m.find()) {
System.out.println(m.group(1));
String element = m.group(1);
Pattern pipe = Pattern.compile("\\|(.*?)\\|");
Matcher mPipe = pipe.matcher(element);
while (mPipe.find()) {
System.out.println(mPipe.group(1));
}
}
}
}
println, it's extremely unlikely that your output is a single line of text, like you showed, so please format entire question correctly, so we know that you want and what you're actually getting right now.