日期:2014-05-17  浏览次数:20806 次

求会正则表达式的解答
有如下一段代码
<td bgcolor=#ffffff align=left>安徽氯碱</td><td bgcolor=#ffffff align=left></td><td bgcolor=#ffffff align=left>500&nbsp;元/吨       </td>

我想把这几段html标签间的汉子按顺序取出来,可是写的
<td bgcolor=#ffffff align=left>(.*?)</td>就是取不到,主要是匹配项太多了,怎么分开顺序获取?

------解决方案--------------------
你想要的结果是什么,这是顺序取中文的

string test = "<td bgcolor=#ffffff align=left>安徽氯碱</td><td bgcolor=#ffffff align=left></td><td bgcolor=#ffffff align=left>500&nbsp;元/吨 </td>";
Regex reg = new Regex(@"[\u4e00-\u9fa5]+");
MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
    richTextBox2.Text += m.Value + "\n";
}
/*----输出----
安徽氯碱


*/

------解决方案--------------------
楼上正解
------解决方案--------------------
引用:
你想要的结果是什么,这是顺序取中文的

C# code
string test = "<td bgcolor=#ffffff align=left>安徽氯碱</td><td bgcolor=#ffffff align=left></td><td bgcolor=#ffffff align=left>500&amp;nbsp;元/吨 </td>";
Regex reg = new Regex……

膜拜过客……
------解决方案--------------------
[\u4E00-\u9FA5]这是汉字的匹配区间,用这个试试
------解决方案--------------------
引用:
有如下一段代码
<td bgcolor=#ffffff align=left>安徽氯碱</td><td bgcolor=#ffffff align=left></td><td bgcolor=#ffffff align=left>500&amp;nbsp;元/吨 </td>

我想把这几段html标签间的汉子按顺序取出来,可是写的
<td bgcolor=#ffffff align=lef……

 你是怎么取的?
试试将代码中的 m.Value 修改成m.Groups[1].Value
------解决方案--------------------
楼主,你知道为什么你取不到吗?因为你的正则字符串中 '<' 和 '>' 在正则中是特殊字符,你应该转义成 '\<' 和 '\>',然后再 Matches(...)。这样每一个 match 就有值了。