2013-03-21 61 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