.NET 3.5를 실행하는 dev 컴퓨터에서 다음 정규 표현식을 사용하고 설계된대로 작동합니다. 그러나 .NET 2.0을 실행하는 테스트 환경에 배포하면 제대로 작동하지 않으며 항상 false를 반환하는 것처럼 보입니다. 범인이 무엇인지 아는 사람 있습니까? 감사합니다C# Regex 호환성 문제 (.NET 3.5 vs .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;
}
테스트 환경과 개발 환경에 동일한 데이터가 있는지 확인하십시오. 나는이게 뭔지 모르겠다. 연락처에 포함되어 있고, 그들이 동등하다는 것을 절대 확신 할 수있는 방법이 없다. –
실패한 샘플 데이터를 찾아서 도움을 주어야합니다. –
당신은''''만을 필요로 할 때'\ ""를 사용하여 인용 부호를 벗어납니다. 역 슬래시를 없애면 문제를 해결할 수는 없지만 SO의 구문 강조 기능이 올바르게 작동하므로 코드를 더 쉽게 읽을 수 있습니다. –