在配置appsetting和正则表达式中使用带引号的字符串来查找模式

时间:2012-06-22 06:55:01

标签: c# regex

在配置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 &quot;Early Termination Amount&quot;)"/>


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,而所有其他关键字,如“在见证”等工作正常

1 个答案:

答案 0 :(得分:2)

括号是用于组匹配的特殊字符。你需要在正则表达式中使用反斜杠来逃避它们。

鉴于您没有以任何方式使用匹配组,未转义的括号在正则表达式中完全没有出现,这就是它们在输入中出现阻止匹配的原因。