我在運行.NET 3.5的開發機器上具有以下正則表達式,它按照設計工作。但是,當它被部署到我們的測試環境(運行.NET 2.0)時,它不能正常工作,並且總是返回false。有誰知道罪魁禍首可能是什麼?謝謝C#正則表達式兼容性問題(.NET 3.5與.Net 2.0)
using System.Text.RegularExpressions;
protected void emailContactCheck(object source, ServerValidateEventArgs args)
{
string[] allContacts = this.Contacts.InnerText.ToString().Split(";,".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
Regex rx = new Regex(@"^(([^<>()[\]\\.,;:\[email protected]\""]+"
+ @"(\.[^<>()[\]\\.,;:\[email protected]\""]+)*)|(\"".+\""))@"
+ @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
+ @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+"
+ @"[a-zA-Z]{2,}))$", RegexOptions.IgnoreCase);
foreach (String contact in allContacts)
{
if (!rx.IsMatch(contact.Trim()))
{
args.IsValid = false;
return;
}
}
args.IsValid = true;
}
您確定測試和開發環境具有相同的數據嗎?我不知道這是什麼.Contacts包含,並且沒有辦法可以絕對確定它們是相同的。 – 2009-09-22 23:26:39
查找一些失敗的示例數據,我們應該可以提供幫助。 – 2009-09-23 00:26:43
當您只需要''「'時,您正在使用'\」「'來轉義引號。擺脫反斜槓可能不會解決您的問題,但它會讓SO的語法突出顯示正常工作,使我們更容易閱讀代碼。 – 2009-09-23 02:23:27