Github user ottobackwards commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2748#discussion_r193423188
  
    --- Diff: 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java
 ---
    @@ -1074,12 +1090,11 @@ public void testRegexWithBadCaptureGroup() throws 
IOException {
             runner.setProperty(ReplaceText.REPLACEMENT_STRATEGY, 
ReplaceText.REGEX_REPLACE);
             runner.setProperty(ReplaceText.EVALUATION_MODE, 
ReplaceText.ENTIRE_TEXT);
     
    +        exception.expect(AssertionError.class);
    +        exception.expectMessage("java.lang.IndexOutOfBoundsException: No 
group 1");
    --- End diff --
    
    so the issue is this:
    ```java
     // If we find a back reference that is not valid, then we will treat it as 
a literal string. For example, if we have 3 capturing
        // groups and the Replacement Value has the value is "I owe $8 to him", 
then we want to treat the $8 as a literal "$8", rather
        // than attempting to use it as a back reference.
        private static String escapeLiteralBackReferences(final String 
unescaped, final int numCapturingGroups) {
            if (numCapturingGroups == 0) {
                return unescaped;
            }
    ```
    
    If there are no capture groups, we don't escape all the findings


---

Reply via email to