import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(\\w+)\\s\\w(\\d+)((\\s)\\w(\\d+)\\])*$";
final String string = "# Circuit generated by QLib\n"
+ "# Bernstein-Vazirani search\n"
+ "# Secret= 1\n"
+ ".qubit 11\n"
+ "qubit x0 \n"
+ "qubit x1 \n"
+ "qubit x2 \n"
+ "qubit x3 \n"
+ "qubit x4 \n"
+ "qubit x5 \n"
+ "qubit x6 \n"
+ "qubit x7 \n"
+ "qubit x8 \n"
+ "qubit x9 \n"
+ "qubit y\n"
+ "Prep0 y\n"
+ ".begin\n"
+ "X y\n"
+ "H x0\n"
+ "H x1\n"
+ "H x2\n"
+ "H x3\n"
+ "H x4\n"
+ "H x5\n"
+ "H x6\n"
+ "H x7\n"
+ "H x8\n"
+ "H x9\n"
+ "H y\n"
+ "CNOT x0 y\n"
+ "H x0\n"
+ "H x1\n"
+ "H x2\n"
+ "H x3\n"
+ "H x4\n"
+ "H x5\n"
+ "H x6\n"
+ "H x7\n"
+ "H x8\n"
+ "H x9\n"
+ "H y\n"
+ ".end\n\n"
+ "# Circuit generated by QLib\n"
+ "# QFT for 15 qubits\n"
+ ".qubit 15\n\n"
+ "qubit q0\n"
+ "qubit q1\n"
+ "qubit q2\n"
+ "qubit q3\n"
+ "qubit q4\n"
+ "qubit q5\n"
+ "qubit q6\n"
+ "qubit q7\n"
+ "qubit q8\n"
+ "qubit q9\n"
+ "qubit q10\n"
+ "qubit q11\n"
+ "qubit q12\n"
+ "qubit q13\n"
+ "qubit q14\n\n"
+ ".begin\n"
+ "H q0\n"
+ "CP q1 q0 2\n"
+ "CP q2 q0 1\n"
+ "CP q3 q0 0.5\n"
+ "CP q4 q0 0.25\n"
+ "CP q5 q0 0.125\n"
+ "CP q6 q0 0.0625\n"
+ "CP q7 q0 0.03125\n"
+ "CP q8 q0 0.015625\n"
+ "CP q9 q0 0.0078125\n"
+ "CP q10 q0 0.00390625\n"
+ "CP q11 q0 0.00195312\n"
+ "CP q12 q0 0.000976562\n"
+ "CP q13 q0 0.000488281\n"
+ "CP q14 q0 0.000244141\n"
+ "H q1\n"
+ "CP q2 q1 2\n"
+ "CP q3 q1 1\n"
+ "CP q4 q1 0.5\n"
+ "CP q5 q1 0.25\n"
+ "CP q6 q1 0.125\n"
+ "CP q7 q1 0.0625\n"
+ "CP q8 q1 0.03125\n"
+ "CP q9 q1 0.015625\n"
+ "CP q10 q1 0.0078125\n"
+ "CP q11 q1 0.00390625\n"
+ "CP q12 q1 0.00195312\n"
+ "CP q13 q1 0.000976562\n"
+ "CP q14 q1 0.000488281\n"
+ "H q2\n"
+ "CP q3 q2 2\n"
+ "CP q4 q2 1\n"
+ "CP q5 q2 0.5\n"
+ "CP q6 q2 0.25\n"
+ "CP q7 q2 0.125\n"
+ "CP q8 q2 0.0625\n"
+ "CP q9 q2 0.03125\n"
+ "CP q10 q2 0.015625\n"
+ "CP q11 q2 0.0078125\n"
+ "CP q12 q2 0.00390625\n"
+ "CP q13 q2 0.00195312\n"
+ "CP q14 q2 0.000976562\n"
+ "H q3\n"
+ "CP q4 q3 2\n"
+ "CP q5 q3 1\n"
+ "CP q6 q3 0.5\n"
+ "CP q7 q3 0.25\n"
+ "CP q8 q3 0.125\n"
+ "CP q9 q3 0.0625\n"
+ "CP q10 q3 0.03125\n"
+ "CP q11 q3 0.015625\n"
+ "CP q12 q3 0.0078125\n"
+ "CP q13 q3 0.00390625\n"
+ "CP q14 q3 0.00195312\n"
+ "H q4\n"
+ "CP q5 q4 2\n"
+ "CP q6 q4 1\n"
+ "CP q7 q4 0.5\n"
+ "CP q8 q4 0.25\n"
+ "CP q9 q4 0.125\n"
+ "CP q10 q4 0.0625\n"
+ "CP q11 q4 0.03125\n"
+ "CP q12 q4 0.015625\n"
+ "CP q13 q4 0.0078125\n"
+ "CP q14 q4 0.00390625\n"
+ "H q5\n"
+ "CP q6 q5 2\n"
+ "CP q7 q5 1\n"
+ "CP q8 q5 0.5\n"
+ "CP q9 q5 0.25\n"
+ "CP q10 q5 0.125\n"
+ "CP q11 q5 0.0625\n"
+ "CP q12 q5 0.03125\n"
+ "CP q13 q5 0.015625\n"
+ "CP q14 q5 0.0078125\n"
+ "H q6\n"
+ "CP q7 q6 2\n"
+ "CP q8 q6 1\n"
+ "CP q9 q6 0.5\n"
+ "CP q10 q6 0.25\n"
+ "CP q11 q6 0.125\n"
+ "CP q12 q6 0.0625\n"
+ "CP q13 q6 0.03125\n"
+ "CP q14 q6 0.015625\n"
+ "H q7\n"
+ "CP q8 q7 2\n"
+ "CP q9 q7 1\n"
+ "CP q10 q7 0.5\n"
+ "CP q11 q7 0.25\n"
+ "CP q12 q7 0.125\n"
+ "CP q13 q7 0.0625\n"
+ "CP q14 q7 0.03125\n"
+ "H q8\n"
+ "CP q9 q8 2\n"
+ "CP q10 q8 1\n"
+ "CP q11 q8 0.5\n"
+ "CP q12 q8 0.25\n"
+ "CP q13 q8 0.125\n"
+ "CP q14 q8 0.0625\n"
+ "H q9\n"
+ "CP q10 q9 2\n"
+ "CP q11 q9 1\n"
+ "CP q12 q9 0.5\n"
+ "CP q13 q9 0.25\n"
+ "CP q14 q9 0.125\n"
+ "H q10\n"
+ "CP q11 q10 2\n"
+ "CP q12 q10 1\n"
+ "CP q13 q10 0.5\n"
+ "CP q14 q10 0.25\n"
+ "H q11\n"
+ "CP q12 q11 2\n"
+ "CP q13 q11 1\n"
+ "CP q14 q11 0.5\n"
+ "H q12\n"
+ "CP q13 q12 2\n"
+ "CP q14 q12 1\n"
+ "H q13\n"
+ "CP q14 q13 2\n"
+ "H q14\n"
+ ".end\n\n";
final String subst = "";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
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