2013-03-21 64 views
-2

請幫我解決這個問題,非常感謝C#普通快遞如何讓這場比賽

string= 
" 
<span id="thread_aaaa" class="tsubject"> 
    <a href="viewthread.php?tid=12343245&amp;extra=page%3D1"> 
     WHAT I WANT TO GET1 
    </a> 
</span> 

<span id="thread_bbbb" class="tsubject"> 
    <a href="viewthread.php?tid=65456342&amp;extra=page%3D1"> 
     WHAT I WANT TO GET2 
    </a> 
</span> 
" 

我需要得到的是我想做的GET1的價值,我想GET2等

我使用: (" < span id=\"thread_)(.+?)< /a>< /span>"),但不工作,幫助

+3

刪除''。爲什麼那裏開始? – 2013-03-21 19:04:02

+5

*不起作用*是什麼意思?例外?編譯器錯誤?錯誤的結果? – 2013-03-21 19:06:04

+3

@ acheong87:我嗅到了試圖用正則表達式解析HTML ......'aaa' =打開標籤; 'bbb' =結束標記 – 2013-03-21 19:09:46

回答

0

你正在尋找的正則表達式是:

(?<=aaa)(.*)(?=bbb) 

//匹配的兩個字符串AAA和BBB

1

對於給定的新的示例串之間的任何字符,這會找到他們:

string str = @" 
< span id=""thread_aaaa"" class=""tsubject"" >< a href=""viewthread.php?tid=12343245&extra=page%3D1"" > WHAT I WANT TO GET1 </a></span> 

< span id=""thread_bbbb"" class=""tsubject"">< a href=""viewthread.php?tid=65456342&extra=page%3D1"" >WHAT I WANT TO GET2</a>< /span>"; 

Regex regex1 = new Regex(@"href.*>(.*)< *\/a"); 
var matches = regex1.Matches(str); 

foreach (var m in matches) 
{ 
    var match = (Match) m; 
    Console.WriteLine(match.Groups[1].Value.Trim()); // write the value to the console "pattern" 
} 

/* 
Output: 
WHAT I WANT TO GET1 
WHAT I WANT TO GET2 
*/ 
+0

謝謝,它的作品,但適用於我的真實情況,它不適用於我,請幫助 – 2013-03-21 19:57:28

+0

沒有匹配顯示,我不知道它爲什麼不打印任何東西 – 2013-03-21 20:32:55

+0

你確定示例字符串正是你所在的試圖搜索?確保沒有多餘的空間或任何東西。例如,如果< /a>中沒有空格,如果它只是,那麼在這種情況下,正則表達式需要爲「href。*>(。*)<\/a」。 – 2013-03-21 20:41:59