2013-06-06 89 views
0

這是我的計劃:正則表達式空

class Program 
    { 
     private static Regex _regex = new Regex("<span id='TotalG'>$ (?<amount>.*?)</span>", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Compiled); 

     static void Main(string[] args) 
     { 

      string text = File.ReadAllText("file.txt"); 

      var match = _regex.Match(text); 

      var group = match.Groups["amount"]; 

      // Console.ReadKey(); 

     } 
    } 

文本確實包含這樣的文字:

<td align="right" bgcolor=c0c0c0 style="font-weight:bold"> <span id='TotalG'>$ 0.00</span></td> 
     <td>&nbsp;</td></tr> 

尚未命名組始終是空的。任何想法爲什麼會發生?

+0

您正則表達式不匹配,甚至, –

回答

3

通過在其之前添加反斜槓,轉義$,<>

而且我真的建議對命名組不同的正則表達式,以及:

"\\<span id='TotalG'\\>\\$(?<amount>[^\\<]*)\\</span\\>" 

我敢肯定,>的和<的應該只有在(括號)進行轉義,但我寧願逃避東西,而不是記住正則表達式規則。

+0

出色的幫助。那就是訣竅。 – Jack

0

如果你正在處理html您可以使用Html agile pack

var doc = new HtmlDocument(); 
doc.Load("test.html"); 
var node = doc.DocumentNode.SelectSingleNode("//span[@id='TotalG']"); 
if (node != null) 
{ 
    var temp = node.InnerText; 
}