我从跨度的innerHTML刮一年值和值是在括号中是这样的:正则表达式:如何逃脱在C#中的“(”元字符
<span class="year_type">(2009)</span><br>
我想要得到的今年的值,而括号,但我试图逃离“(”字符时,得到了一些编译器错误
我的模式:
const string yearPattern = "<span class=\"year_type\">\((?<year>.*?)\)</span>";
完整代码:
const string yearPattern = "<span class=\"year_type\">\((?<year>.*?)\)</span>";
var regex = new Regex(yearPattern, RegexOptions.Singleline | RegexOptions.IgnoreCase);
Match match = regex.Match(data);
return match.Groups["year"].Value;
什么是逃避()
感谢
反斜杠为编译器转义字符串文字。为了逃避它的正则表达式类,你需要另一个。 – Ken 2010-03-07 18:43:36
有一个很棒的免费图书馆,名为Html Agility Pack。它将避免你的整个问题,让你的代码更易于编写和阅读,并且不太可能在HTML边缘案例中突破。 http://www.codeplex.com/htmlagilitypack请不要用正则表达式解析HTML。 http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html – TrueWill 2010-03-07 20:05:56
谢谢TueWill--将它合并了一个小时前,并享受它。 Betters文档有助于实现目标。使用基本的LINQ,但不能使用lambda表达式? – Chev 2010-03-09 10:59:24