日期:2014-05-18  浏览次数:20421 次

==== 正则表达式请教 =======
首先谢谢过客对我的帮助。

现在还有两个正则表达式需要帮忙:

1.  

<table   width= "90% "   border= "0 "   cellspacing= "0 "   cellpadding= "0 ">
                    <tr>
                        <td   style= "word-break:break-all "> 工作态度:“诚!谦!活!勤!”。 <br> 为人友善,工作认真负责,能吃苦耐劳。 <br> 特长:美术设计。爱好音乐,动手能力强。 </td>
                    </tr>


我要取得“工作态度:“诚!谦!活!勤!”。 <br> 为人友善,工作认真负责,能吃苦耐劳。 <br> 特长:美术设计。爱好音乐,动手能力强。”

2.  
<td   width= "20% "> 姓   名:   </td>
                        <td   width= "30% "> 张三   </td>

我要取得“张三”


需要注意的是,这些html是一个页面中的一部分。

谢谢!

------解决方案--------------------
<td width= "30% "> ([^ <]*) </td>
<td style= "word-break:break-all "> ([^\S]*) </td>
------解决方案--------------------
<td[^> ]*?> (? <content> .*?) </td>
加个?号
------解决方案--------------------
try

第一个
string yourStr = ............;
string resultStr = " ";
Match m = Regex.Match(yourStr, @ "工作态度:[\s\S]*?(?= </td> ) ", RegexOptions.IgnoreCase);
if (m.Success)
{
resultStr = m.Value;
}

第二个
string yourStr = ............;
string resultStr = " ";
Match m = Regex.Match(yourStr, @ "姓 名:[\s\S]*? <td[^> ]*> (? <name> [^ <]*) </td> ", RegexOptions.IgnoreCase);
if (m.Success)
{
resultStr = m.Groups[ "name "].Value;
}


这里假定第一个里“工作态度:”,第二个里“姓 名:”为唯一的,也就是可以用来定位到你想提取的信息,如果不是这样,再说明一下,用什么标识符可以定位到你想提取的数据