mercredi 12 avril 2017

Escaping dollars groovy

I'm having trouble escaping double dollars from a string to be used with regex functions pattern/matcher.

This is part of the String:

WHERE oid_2 = $$test$$ || oid_2 = $$test2$$

and this is the closest code I've tried to get near the solution:

List<String> strList = new ArrayList<String>();
Pattern pattern = Pattern.compile("\$\$.*?\$\$");
log.debug("PATTERN: "+pattern)
Matcher matcher = pattern.matcher(queryText);
while (matcher.find()) {
    strList.add(matcher.group());
}
log.debug(strList)

This is the debug output i get

- PATTERN: $$.*?$$
- []

So the pattern is actually right, but the placeholders are not found in the string.

As a test I've tried to replace "$$test$$" with "XXtestXX" and everything works perfectly. What am I missing? I've tried "/$" strings, "\\" but still have no solution.

Aucun commentaire:

Enregistrer un commentaire