在配置appsetting中使用带有quots的字符串,以“|”分隔和 使用正则表达式匹配关键字
从输入字符串中查找模式<add key="SignatureWord" value="IN WITNESS|For this purpose|Please confirm your agreement|Acknowledged and Agreed|EXECUTED by the parties|(i) Any amount (the "Early Termination Amount")"/>
public bool isSignature()
{
NodeVal="(i) Any amount (the \"Early Termination Amount\") payable to one party (the \"Payee\")by the other party (the \"Payer\") under Section 6(e)";
bool isSignature = false;
string kWordforSignature = ConfigurationSettings.AppSettings["SignatureWord"].ToString();
Match mObj = Regex.Match(NodeVal, @"\b" + kWordforSignature + @"\b", RegexOptions.Singleline | RegexOptions.IgnoreCase);
if ((mObj.Success) && (NodeVal.IndexOf(mObj.ToString().Trim()) == 0))
{
isSignature = true;
}
return isSignature;
}
不使用关键字“(i)任何金额(”提前终止金额“)”定义 在appsetting,而所有其他关键字,如“在见证”等工作正常
答案 0 :(得分:2)
括号是用于组匹配的特殊字符。你需要在正则表达式中使用反斜杠来逃避它们。
鉴于您没有以任何方式使用匹配组,未转义的括号在正则表达式中完全没有出现,这就是它们在输入中出现阻止匹配的原因。