Tag: 反向引用

replacestring中的反向引用语法(为什么是美元符号?)

在Java中,似乎在其他一些语言中,模式中的反向引用前面有一个反斜杠(例如\1 , \2 , \3等),但是在replacestring中,它们前面是美元符号(例如$1 , $2 , $3 ,也$0 )。 这里有一个片段来说明: System.out.println( "left-right".replaceAll("(.*)-(.*)", "\\2-\\1") // WRONG!!! ); // prints "2-1" System.out.println( "left-right".replaceAll("(.*)-(.*)", "$2-$1") // CORRECT! ); // prints "right-left" System.out.println( "You want million dollar?!?".replaceAll("(\\w*) dollar", "US\\$ $1") ); // prints "You want US$ million?!?" System.out.println( "You want million dollar?!?".replaceAll("(\\w*) dollar", "US$ \\1") ); // […]

JavaScript – string正则expression式反向引用

你可以在JavaScript中反向引用: var str = "123 $test 123"; str = str.replace(/(\$)([az]+)/gi, "$2"); 这(很愚蠢)将“testing”replace“testing”。 但是想象一下,我想将$ 2的结果string传递给一个返回另一个值的函数。 我试过这样做,但没有得到string“testing”,我得到“$ 2”。 有没有办法做到这一点? // Instead of getting "$2" passed into somefunc, I want "test" // (ie the result of the regex) str = str.replace(/(\$)([az]+)/gi, somefunc("$2"));