2011-12-02 67 views
1

我正在尝试编写一个小脚本,提示用户输入他们的电子邮件地址。这封电子邮件的价值被传递给一个函数,该函数将他们的电子邮件后缀(如.net,.com,.edu)替换为.org。我有以下代码,但它不会替换后缀。任何帮助在这个问题将不胜感激。谢谢。Powershell替换电子邮件后缀

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

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

Email $mail 

回答

2

您正在使用不支持正则表达式的String.Replace

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

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

尝试以下:

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

$表示字符串的结尾。

PS:如果你不验证输入(通过正则表达式匹配,你可以如用字符串替换为org)

+0

非常感谢你。这工作!感谢你的帮助。 – user1013264