user2694404
user2694404

Reputation: 33

regular expression for finding string between [[ ]] and {{}}

How could I find string between [[ ]]? After searching a answer I find this method below, but I cannot find the regular expression for [[ ]], neither for {{ }}.

What I want to do is to find e.g. [[abc]]XXXXXXXXXX[[def]], and save abc, def as a ArrayList.

String s = "[[abc]]XXXXXXXXXX[[def]]";
Pattern p = Pattern.compile("[[(.*?)]]")
Matcher m = p.matcher(s);
if (m.find()) {
    System.out.println(m.group(i)); // => "abc","def"
}

Upvotes: 3

Views: 149

Answers (1)

Casimir et Hippolyte
Casimir et Hippolyte

Reputation: 89574

You must double escape the opening square brackets (you can do the same with the closing) since they are used to define character classes:

Pattern p = Pattern.compile("\\[\\[(.*?)]]");

(exactly the same with curly braces, that are used for quantifiers)

You can read this fabulous post about the incredible world of square brackets.

Upvotes: 4

Related Questions