例如,让我们说我想取字符串Hello World
并使用-replace
输出" World1"。这是我对表达式的尝试:
"Hello World" -replace '.*(World)','$11'
但这里的问题是它看到11美元作为第11个序列,而不是1美元,然后是1.我已经尝试搜索转义字符来指定我想要1跟随$ 1,但是没找到任何东西。
我试图解决的现实世界问题是获取一堆电子邮件地址并在最后创建带有数字的别名。例如
jsmith@example.com
变为
jsmith1@example.com
jsmith2@example.com
答案 0 :(得分: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);
输出World1
答案 1 :(得分:1)
试试这个:
$Email = "jsmith@example.com"
$Domain = ($Email -split "@")[-1]
for ($i=1;$i -le 5;$i++)
{
(($Email -split "@")[0] + $i),$Domain -join "@"
}
## Result
jsmith1@example.com
jsmith2@example.com
jsmith3@example.com
jsmith4@example.com
jsmith5@example.com
如果你不需要它,你可以避免使用for循环,只需替换本节中的$ i:
$Email -split "@")[0] + $i