求会正则表达式的解答
有如下一段代码
<td bgcolor=#ffffff align=left>安徽氯碱</td><td bgcolor=#ffffff align=left></td><td bgcolor=#ffffff align=left>500 元/吨 </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 元/吨 </td>";
Regex reg = new Regex(@"[\u4e00-\u9fa5]+");
MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
/*----输出----
安徽氯碱
元
吨
*/
------解决方案--------------------楼上正解
------解决方案--------------------
膜拜过客……
------解决方案--------------------[\u4E00-\u9FA5]这是汉字的匹配区间,用这个试试
------解决方案--------------------
你是怎么取的?
试试将代码中的 m.Value 修改成m.Groups[1].Value
------解决方案--------------------楼主,你知道为什么你取不到吗?因为你的正则字符串中 '<' 和 '>' 在正则中是特殊字符,你应该转义成 '\<' 和 '\>',然后再 Matches(...)。这样每一个 match 就有值了。