如何在powershell中写一个-replace,其中一个数字跟在序列之后

elt*_*mmo 3 regex powershell

例如,假设我想取字符串Hello World并使用a -replace来输出"World1".这是我对表达的尝试:

"Hello World" -replace '.*(World)','$11'
Run Code Online (Sandbox Code Playgroud)

但问题是,它看到11美元作为第11个序列,而不是1美元,然后是1.我已经尝试搜索转义字符来指定我想要1跟随1美元,但没有找到任何东西.

我试图解决的现实问题是获取一堆电子邮件地址并在最后创建带有数字的别名.例如

jsmith@example.com
Run Code Online (Sandbox Code Playgroud)

jsmith1@example.com
jsmith2@example.com
Run Code Online (Sandbox Code Playgroud)

mrw*_*aim 5

尝试 "Hello World" -replace '.*(World)','${1}1'

它似乎在这里工作

        var s1 = "Hello World";
        var r = ".*(World)";
        var p = "${1}1";
        var outstr = Regex.Replace(s1, r, p);
        Console.WriteLine(outstr);
Run Code Online (Sandbox Code Playgroud)

产量 World1