import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "[*][(][\\s]*[(\\s]*.*[*][)\\s]*(.*)\\s*[)]\\s*=(.*)[\\s]*;";
final String string = " (*((volatile unsigned short*)(type01_01_06_base + (type01_01_06_offset * 1))) = (unsigned short)(unsigned long)0x01010101);\n"
+ " (*((volatile unsigned short*)(type01_01_06_base + (type01_01_06_offset * 2))) = (unsigned short)(unsigned long)0x01000100);\n\n"
+ "(*((volatile unsigned char*)add)) = (unsigned char)data;\n\n"
+ "(*((volatile unsigned short*)add)) = (unsigned short)data;\n\n"
+ "(*((volatile unsigned long*)add)) = (unsigned long)data;\n\n\n"
+ " \n"
+ " *((volatile unsigned char*)0x01010004) = (unsigned char)0x01;\n"
+ " *((volatile unsigned char*)0x01010008) = (unsigned char)0x00;\n\n"
+ " *((volatile unsigned short*)0x01020004) = (unsigned short)0x0100;\n"
+ " *((volatile unsigned short*)0x01020008) = (unsigned short)0x0000;\n\n"
+ " *((volatile unsigned long*)(0x01030000 + 0x04)) = (unsigned long)0x00010000;\n"
+ " *((volatile unsigned long*)(0x01030000 + 0x08)) = (unsigned long)0x00000000;\n\n"
+ " (*((volatile unsigned char*)type01_01_04o_add) = (unsigned char)(unsigned char)0xA5);\n\n"
+ " (*((volatile unsigned char*)type01_01_04n_add) = (unsigned char)(unsigned char)0x5A);\n\n"
+ " (*((volatile unsigned short*)(type01_01_05_base + type01_01_05o_offset)) = (unsigned short)(unsigned short)0x0101);\n"
+ " (*((volatile unsigned short*)(type01_01_05_base + type01_01_05n_offset)) = (unsigned short)(unsigned short)0x0100);\n\n\n\n\n"
+ " *((volatile unsigned char*)0x02010004) = (unsigned char)0x04;\n"
+ " *((volatile unsigned char*)0x02010008) = (unsigned char)0x05;\n\n"
+ " *((volatile unsigned short*)0x02020004) = (unsigned short)0x0400;\n"
+ " *((volatile unsigned short*)0x02020008) = (unsigned short)0x0500;\n\n"
+ " *((volatile unsigned long*)0x02030004) = (unsigned long)(0x00030000 + 0x00010000);\n"
+ " *((volatile unsigned long*)0x02030008) = (unsigned long)(0x00030000 + 0x00020000);\n\n"
+ " (*((volatile unsigned char*)0x02040004) = (unsigned char)(unsigned char)(0x0A - 0x02));\n"
+ " (*((volatile unsigned char*)0x02040008) = (unsigned char)(unsigned char)(0x0A - 0x01));\n\n"
+ " (*((volatile unsigned short*)0x02050004) = (unsigned short)(unsigned short)(0x0001 << 11));\n"
+ " (*((volatile unsigned short*)0x02050008) = (unsigned short)(unsigned short)(0x0001 << 12));\n\n"
+ " (*((volatile unsigned long*)0x02060004) = (unsigned long)(unsigned long)(0x80000000 | 0x00080000));\n"
+ " (*((volatile unsigned long*)0x02060008) = (unsigned long)(unsigned long)(0x80000000 | 0x00800000));\n\n";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | Pattern.COMMENTS);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html