Powershell替换电子邮件后缀

时间:2011-12-02 04:05:19

标签: regex powershell powershell-v2.0

我正在尝试编写一个小脚本,提示用户输入他们的电子邮件地址。此电子邮件的值将传递给一个函数,该函数将其.net,.com,.edu等电子邮件后缀替换为.org。我有以下代码,但它不替换后缀。任何有关此事的帮助将不胜感激。谢谢。

cls
$mail = Read-Host "Please enter your email address"

Function Email ($change)
{
    $modified=$change.Replace(".{3}[A-Za-z]", ".org")
    $modified
}

Email $mail

1 个答案:

答案 0 :(得分:2)

您使用的String.Replace与正则表达式不兼容。

此外,你的正则表达式不能做你想做的事。

.是正则表达式中的一个特殊字符,你想逃避它。 {3}也应该在字符类之后。

尝试以下方法:

Function Email ($change)
{
    $modified=$change -replace "\.[a-zA-Z]{3}$", ".org"
    $modified
}

$表示字符串结束。

PS:如果您没有验证输入(通过正则表达式匹配,您也可以使用子字符串替换为org)