请考虑以下javascript代码:
"myObject.myMethod();".replace(/\.\w+\(/g, "xxx");
Run Code Online (Sandbox Code Playgroud)
它给" myObjectxxx);"作为" .myMethod("被选中.
现在我只会选择myMethod.换句话说,我想选择.以((排除)开头和结尾的任何单词.
谢谢,卢卡.
Ano*_*sse 25
一般答案:使用括号捕获要保留的部分,并将其包含在替换字符串中$1.
有关详细信息,请参阅任何regexp替换教程.
这里:只需在替换字符串中包含.和(.
为了练习,写一个正则表达式将会把该计划的任何字符串--ABC--DEF--来--DEF--ABC--为任意字母值ABC和DEF.所以--XY--IJK--应该变成--IJK--XY--.在这里,您确实需要使用捕获组和反向引用.
您可以使用环视断言:
.replace(/(?<=\.)\w+(?=\()/g, 'xxx')
Run Code Online (Sandbox Code Playgroud)
这些将使比赛成功,而同时又不属于比赛本身。因此,您只需要替换中间的零件。
对于不熟悉正则表达式的人来说,更简单的选择可能是在替换中也包含.和(:
.replace(/\.\w+\(/g, ".xxx(")
Run Code Online (Sandbox Code Playgroud)