我試圖在電子郵件中查找未使用的合併域,並拋出解析器不支持的域。格式是[MERGEFIELD]。括號內的所有大寫字母。與來自正則表達式匹配的消息拋出異常
I然後想要在文本中引發第一個不支持的合併域的值。
if (Regex.IsMatch(email.Body, @"\[[A-Z]+\]"))
{
var regexobj = new Regex(@"\[[A-Z]+\]");
var regexBody = regexobj.Match(email.Body).Groups[1].Value;
throw new NotImplementedException("Unsupported Merge Field:"+ regexBody);
}
現在我得到的例外,但唯一的消息是「不支持合併字段:」
爲什麼要使用正則表達式呢?當你可以簡單地使用String.Contains(「[MERGEFIELD」)或者String.IndexOf(「[MERGEFIELD]」)''的時候,它是過度的。它只是爲了過度複雜的問題。 –
也許我應該更清楚一點,我在mergefield中使用了大約25個不同的關鍵字(例如[FNAME]和[LNAME])。我希望它找到任何最終沒有以[[CAPITALLALLETTERSINHERE] – Subliminy
@Subliminy格式解析所以你想找到任何東西看起來像括號括起來的大寫字母? – guanome