Skip to main content
3 of 4
added 31 characters in body
Tony
  • 2.4k
  • 4
  • 37
  • 58

Split text wit Java-Regex in pairs with Regex over several lines

I have following text:

my-widget{ color: #{mycolors.getColors(1)} } ... my-tridget{ color: #{mycolors.getColors(2)} ... } ... 

I want to split the text in pairs, where the delimiter is #{mycolors.getColors()} and the text between previous delimeter and current delimiter will be saved. E.g. for such pairs:

Pair 1: text: my-widget{ color: number: 1

Pair 2: text: } ... my-tridget{ color: number: 2

What I am used so far,

 Pattern p = Pattern.compile("(.*)#\\{mycolors.getColor\\(([0-9])\\)\\}", Pattern.CASE_INSENSITIVE|Pattern.MULTILINE); Matcher m = p.matcher(data); while (m.find){ String number = m.group(2).toLowerCase().trim(); String text = m.group(1); } 

But number and text will be to:

text: color: number: 1

text: color: number: 2

So the text doesn't go over several lines. How can I achieve this ? (The Pattern.DOTALL in addtion to Pattern.MULTILINE didn't help me)

Tony
  • 2.4k
  • 4
  • 37
  • 58