使用Regex识别特定字符串

时间:2017-10-26 23:47:13

标签: c# regex

我有

的html table td数据
id="ctlHoursReport_rptrHoursReport_tdMon_29", 
id="ctlHoursReport_rptrHoursReport_tdTue_29", 
id="ctlHoursReport_rptrHoursReport_tdWed_29",

等。到太阳最后的数字是表格的行号。

每个td代表一周中的某一天。我想删除整个ID,包括日期缩写 但我想保留其他tds的ID,例如。 id="ctlHoursReport_rptrHoursReport_tdPayRate_29"

如何将其放入单个Regex.replace方法?

[编辑] 这是我到目前为止所提出的。它有效,但非常笨重:

html = Regex.Replace(html, "id=\"ctlHoursReport_rptrHoursReport_tdMon[^\"]+\"|id=\"ctlHoursReport_rptrHoursReport_tdTue[^\"]+\"|id=\"ctlHoursReport_rptrHoursReport_tdWed[^\"]+\"" +
                                    "|id=\"ctlHoursReport_rptrHoursReport_tdThu[^\"]+\"|id=\"ctlHoursReport_rptrHoursReport_tdFri[^\"]+\"|id=\"ctlHoursReport_rptrHoursReport_tdSat[^\"]+\"" +
                                    "|id=\"ctlHoursReport_rptrHoursReport_tdSun[^\"]+\"", String.Empty, RegexOptions.IgnoreCase);

[第2次编辑] 我要删除的ID - 一周中的几天以M,T,W,T,F,S,S开头。 我不想触摸的那些 - PayRate,Reg,OT,以不同的字母开头。

所以我能够将声明缩减为:

html = Regex.Replace(html, "id=\"ctlHoursReport_rptrHoursReport_td[MTWFS].+[0-9]\"", String.Empty, RegexOptions.IgnoreCase);

所以,它更干净,但我想说的是:

html = Regex.Replace(html, "id=\"ctlHoursReport_td[Mon,Tue,...Sun]_[0-9]\"" 

0 个答案:

没有答案