C# IsMatch方法在不应';T
我有一个字符串和正则表达式从中获取参数。以下是信息: “数据流任务:错误:插入目标时出错。输入[OLE DB Destination Input]。插入目标上的列[EmissionMarket]。输入[OLE DB Destination Input]。返回的列状态为:\“该值违反了列的完整性约束。\” 以下是regexp: {数据流任务:错误:插入目标时出错。输入[OLE DB Destination Input]。插入目标上的列[(.*)]。输入[OLE DB Destination Input]。返回的列状态为:“该值违反了列的完整性约束。”。} (这两个字符串在运行时都是从VS复制的,因此配额和方括号都是从VS复制的) 我看不出它们不匹配的任何原因,但IsMatch方法返回false。我遗漏了什么?这是因为“[”和“]”字符。您需要为正则表达式转义它们,否则它们将被视为字符类。换句话说,您需要:C# IsMatch方法在不应';T,c#,regex,C#,Regex,我有一个字符串和正则表达式从中获取参数。以下是信息: “数据流任务:错误:插入目标时出错。输入[OLE DB Destination Input]。插入目标上的列[EmissionMarket]。输入[OLE DB Destination Input]。返回的列状态为:\“该值违反了列的完整性约束。\” 以下是regexp: {数据流任务:错误:插入目标时出错。输入[OLE DB Destination Input]。插入目标上的列[(.*)]。输入[OLE DB Destination Inp
Data Flow Task:Error: There was an error with Insert Destination.Inputs\[OLE DB Destination Input\].Columns\[(.*?)\] on Insert Destination.Inputs\[OLE DB Destination Input\]. The column status returned was: "The value violated the integrity constraints for the column.".
正则表达式使用
[
和]
形成字符类。您至少需要将[
字符转义为\[
。您还需要转义
的所有实例,即一个文字句点(使用\.
),否则它将允许匹配该位置的任何字符
有关详细信息,请参见。您需要对多个字符进行换码
和[]
在正则表达式中都有特殊的含义,通常所有包含它的字符都需要转义\
根据您的样本,结果如下:
"Data Flow Task:Error: There was an error with Insert Destination\.Inputs\[OLE DB Destination Input\]\.Columns\[(.*?)\] on Insert Destination\.Inputs\[OLE DB Destination Input\]\. The column status returned was\: "The value violated the integrity constraints for the column\."\.
提示:您需要转义其中一些字符。
[]
s应该转义。非常感谢,错过了这一方面