RegEx backreferences in IntelliJ

Viewed 23915

I want to use IntelliJ's find-and-replace feature to perform the following transformation:

// Replace this
model.put('foo', 'bar')
// With this
model['foo'] = bar

I've tried the following:

Text to find: model.put\((.*),(.*)\) Replace with: model\[\\1\] = \\2

But Intellij doesn't seem to recognise \\1 and \\2 as backreferences. I've also tried a single slash, but that doesn't work either.

4 Answers

The in-product contextual help for regex in Idea 9.0 (and perhaps other versions) appears to be incorrect. It states this:

  Back references
  \n
  Whatever the nth capturing group matched

But apparently, as mentioned in previous answers and is my experience, it's really \$n for back references, rather than \n

You get to this contextual help by clicking the '[Help]' link next to the "Regular expression" radio option on the the "Replace Text" dialog box

Related