正则表达式匹配空单元格
Regex Match Null Cells
我尝试在我的函数中使用正则表达式。它允许在正则表达式中找到具有指定字符串的单元格(忽略大小写)。
问题是,如果我在单元格之前有空框,我就会出现异常。
我不明白为什么 NULL 单元格是个问题。
我的函数:
public int FindSearchableCol()
{
var j = 1;
var x = FindMainInfoStartRow();
var i = x;
string test = ws.Cells[i, j].Value2;
Regex searchable = new Regex(@"(?<=\*)(searchable)(?=\*)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
try
{
while (true)
{
MatchCollection matches = searchable.Matches(ws.Cells[i, j].Value2);
if (matches.Count > 0)
{
return j;
}
else
{
i++;
if (ws.Cells[i, j].Value2 == "*MAIN INFO END*")
{
i = x;
j++;
}
}
}
}
finally
{
}
}
使用:
MatchCollection matches = searchable.Matches(ws.Cells[i, j].Value2 ?? string.Empty)
代替:
MatchCollection matches = searchable.Matches(ws.Cells[i, j].Value2)
我尝试在我的函数中使用正则表达式。它允许在正则表达式中找到具有指定字符串的单元格(忽略大小写)。
问题是,如果我在单元格之前有空框,我就会出现异常。 我不明白为什么 NULL 单元格是个问题。
我的函数:
public int FindSearchableCol()
{
var j = 1;
var x = FindMainInfoStartRow();
var i = x;
string test = ws.Cells[i, j].Value2;
Regex searchable = new Regex(@"(?<=\*)(searchable)(?=\*)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
try
{
while (true)
{
MatchCollection matches = searchable.Matches(ws.Cells[i, j].Value2);
if (matches.Count > 0)
{
return j;
}
else
{
i++;
if (ws.Cells[i, j].Value2 == "*MAIN INFO END*")
{
i = x;
j++;
}
}
}
}
finally
{
}
}
使用:
MatchCollection matches = searchable.Matches(ws.Cells[i, j].Value2 ?? string.Empty)
代替:
MatchCollection matches = searchable.Matches(ws.Cells[i, j].Value2)