请问,如何使用正则表达式匹配html标签以外的内容
其实是个搜索的功能
现在读取到HTML文件后,需要查看其中内容是否包含输入的字符串
若HTML如<table>....</table> 这样输入table,不能有返回结果的
而对于<table>...table..</table>,则返回结果
期待答复,谢谢
其实是个搜索的功能
现在读取到HTML文件后,需要查看其中内容是否包含输入的字符串
若HTML如<table>....</table> 这样输入table,不能有返回结果的
而对于<table>...table..</table>,则返回结果
期待答复,谢谢
/// 返回模板阶段。检验每个主题的阶段是否一致,若不一致抛出文档结构异常。
/// 每个阶段填充Num,Name属性
/// </summary>
public List<Stage> GetStages()
{ listStages.Clear();
List<Theme> listTheme = GetThemes(); Regex r_stage = new Regex(@"Stage\s\d+:");
Regex r_theme = new Regex(@"Theme\s\d+:"); for (int i = 0; i < listTheme.Count; i++)
{
List<Stage> listStage = new List<Stage>();
for (int j = listTheme[i].ID + 1; j < dtExcel.Rows.Count; j++)
{
Match m_stage = r_stage.Match(dtExcel.Rows[j][0].ToString());
Match m_theme = r_theme.Match(dtExcel.Rows[j][0].ToString());
if (m_stage.Success)
{
Stage stage = new Stage();
stage.ID = j;
stage.Num = int.Parse(Regex.Match(dtExcel.Rows[j][0].ToString().Split(':')[0], @"\d+").Value);
stage.StaName = dtExcel.Rows[j][0].ToString().Split(':')[1];
listStage.Add(stage); }
else if (m_theme.Success)
{
break;
}
}
listStages.Add(listStage);
if (listStages[0].Count == listStage.Count)
{
for (int k = 0; k < listStage.Count; k++)
{
if (listStage[k].Num != listStages[0][k].Num || listStage[k].StaName != listStages[0][k].StaName)
{
throw new Exception((listStage[k].ID + 2).ToString() + "行,文档结构异常!");
}
}
}
else
{
throw new Exception((listStage[0].ID + 2).ToString() + "行,文档结构异常!");
}
}
return listStages[0];
}
/// 得到某主题某模块下评估问题组。每个AssessmentCriteria填充Num,Criteria,Theme.Stage属性
/// </summary>
public List<AssessmentCriteria> GetCriteria(int theme, int stage)
{
List<AssessmentCriteria> listAssessmentCriteria = new List<AssessmentCriteria>();
List<Theme> listTheme = GetThemes();
List<Stage> listStage = GetStages();
int themeRow = listTheme[theme].ID;
int stageRow = listStages[theme][stage].ID;
for (int i = stageRow + 1; i < dtExcel.Rows.Count; i++)
{
int indexAss = 0;
if (dtExcel.Rows[i][0].ToString().Trim() != "")
{
AssessmentCriteria assessmentCriteria = new AssessmentCriteria();
assessmentCriteria.Num = indexAss + 1;
assessmentCriteria.Criteria = dtExcel.Rows[i][1].ToString();
assessmentCriteria.Stage = listStage[stage];
assessmentCriteria.Theme = listTheme[theme];
listAssessmentCriteria.Add(assessmentCriteria);
}
else
{
break;
} }
return listAssessmentCriteria;
} /// <summary>
/// 返回模块名称。模块填充,Name和Version属性
/// </summary>
public TRACC GetTRACC()
{
string strTracc = dtExcel.Rows[0][0].ToString();
Regex reg = new Regex(@"(?<=\()[^\[\]]+(?=\))");
TRACC tracc = new TRACC();
tracc.Name = strTracc.Substring(0, strTracc.IndexOf('('));
tracc.Version = reg.Match(strTracc).Value;
return tracc;
}
}
if (listTheme.Count > 0)
{
Response.Write("<font color='red'>theme</font><br/>");
for (int i = 0; i < listTheme.Count; i++)
{
Response.Write(listTheme[i].ID.ToString() + "," + listTheme[i].Name + "," + listTheme[i].Num.ToString() + "<br/>");
}
} List<Stage> listStage = rat.GetStages();
if (listStage.Count > 0)
{
Response.Write("<font color='red'>stage</font><br/>");
for (int i = 0; i < listStage.Count; i++)
{
Response.Write(listStage[i].ID.ToString() + "," + listStage[i].StaName + "," + listStage[i].Num.ToString() + "<br/>");
}
} Response.Write("Name:"+rat.GetTRACC().Name+"<br/>");
Response.Write("Version:"+rat.GetTRACC().Version+"<br/>"); List<AssessmentCriteria> listAc = rat.GetCriteria(0,0);
if (listAc.Count > 0)
{
Response.Write("<font color='red'>ac</font><br/>");
for (int i = 0; i < listAc.Count; i++)
{
Response.Write(listAc[i].Criteria.ToString() + "<br/>");
}
}