import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:<[pP]>)?(?:<strong>)(?:<br \\/>)?(?:<[aA]\\s\\w+=\"([?0-9–\\-\\/\\wÅåÄäÖö;,.()\\[\\]&\\s]+)\">(?:<\\/[aA]>)?)([?0-9–\\-\\/\\wÅåÄäÖö;,.()\\[\\]&\\s]+)(?:<\\/strong>)([?0-9–\\-\\/\\wÅåÄäÖö;,.()\\[\\]&\\s]+)";
final String string = "<strong><A NAME=\"Bondeupproret\"></A>Andersson, Per,</strong> Bondeupproret i Skåne 1811 / Per Andersson, Arne Ribnell. – [Ny, utökad uppl.]. – Malmö, 1996. – 12 s.\n"
+ "<p><strong><br />Andersson, Per,</strong> Litteratur om Svedalatrakten. – Malmö[?], 197-. – 6 bl.\n"
+ "<p><strong><br /><A NAME=\"borgar_slott\"></A>Andersson, Per,</strong> Skånska borgar, slott och herrgårdar. – Lund, 1996. – 212 s.\n"
+ "<p><strong><br /><A NAME=\"Skånska_kyrkor\"></A>Andersson, Per,</strong> Skånska kyrkor, kapell, kloster och andra kyrkliga byggnader. – Malmö, 1985. – 254 s.\n"
+ "<p><strong><br /><A NAME=\"Att_läsa\"></A>Ericsson, Acke,</strong> Att läsa om Sturup. // SkNK. – 1973, h. 1, s. 37-40.\n"
+ "<br />Urval ur Acke Ericssons bibliografi, se nedan.\n"
+ "<p><strong><br /><A NAME=\"Sturup\"></A>Ericsson, Acke,</strong> Sturup. – Malmö, 1973. – 24 bl.\n"
+ "<p><strong><br />Jönsson, Knut,</strong> Anteckningar till en bibliografi över Bara kommun. – Borås, 1975. – 76 bl.\n";
final String subst = "<p><strong><a name=\"$1\">$2</a></strong>$3</p>";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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