尝试将我在字符串中找到的匹配项放入DataTable:
DataTable dtListVar = new DataTable();
string pattern = @"\[([^\[\]]+)\]";
string inputText = "Find string inside brackets [C#.net] and [Vb.net] example.";
foreach (Match m in Regex.Matches(inputText, pattern))
{
DataRow dr = dtListVar.NewRow();
dr["Var"] = m.Value.Replace('[', ' ').Replace(']', ' ');
dr["Value"] = "";
dtListVariables.Rows.Add(dr);
}
我找到了元素,但是当我想要分配给DataRow时,我有这个例外:
类型' System.ArgumentException'的第一次机会异常。发生了 在System.Data.dll
中
答案 0 :(得分:0)
您的例外与正则表达式无关。您的异常消息来自System.Data
,而不是System.Text.RegularExpression
。
您正在创建一个空的DataTable
,然后将数据分配给尚不存在的列。在尝试为其分配数据之前,您需要define the schema of the data table。
答案 1 :(得分:0)
我想你应该声明列Var和值:
DataTable dtListVar = new DataTable();
dtListVar.Columns.Add("Var");
dtListVar.Columns.Add("Value");
并在最后一行使用 dtListVar 而不是 dtListVariables 。
顺便说一下,我会在这里使用一个对象而不是dataTable。
答案 2 :(得分:0)
使用此:
var row = dtListVar.NewRow();
dtListVar.Rows.Add(row);
...
答案 3 :(得分:-3)
模式错误。 " ["不能进入另一个" ["。 试试" [(。*)]"。