来拿分吧,正则匹配换行符中的内容

zhgroup 2010-04-12 08:23:01
<tr class="tr3"><td colspan="6"></td></tr>
<tr class="tr0" bgcolor="#f6f6f6">

<td class="td0"><input type="checkbox" name="selectJobid42305701" value="42305701" ></td>

<td class="td1"><a href="http://search.51job.com/job/42305701,c.html" onclick="zzSearch.acStatRecJob( 1 );" class="jobname" target="_blank" >收银员</a><img src="http://img01.51jobcdn.com/im/2009/search/db_arrow_down.gif" align="absmiddle" onclick="zzSearch.switchListType( this , '#f6f6f6' );"></td>

<td class="td2"><a href="http://search.51job.com/list/co,c,200346,0000,10,1.html" class="coname" target="_blank" >四川杏林医药连锁有限责任公司</a></td>

<td class="td3"><span id="map_jobarea42305701">四川省</span></td>

<td class="td4"><span id="map_fbrq42305701">2010-04-11</span></td>

<td class="td5"> </td>

</tr>
<tr class="tr1" style="display: none;" bgcolor="#f6f6f6">
<td class="td0"> </td>
<td colspan="4" class="td1234">
学历要求:中专  |  
工作经验:应届毕业生  |  公司性质:民营公司  |  公司规模500人以上
</td>

<td class="td5">
<a id="jobappli_42305701" href="http://my.51job.com/sc/applyjob/applyjob.php?jobiduni=(42305701)" onclick="zzSearch.jobview( '42305701' );" target="_blank"><img src="http://img01.51jobcdn.com/im/2009/search/c/ljsq1.gif" border="0" align="absmiddle"></a>
</td>
</tr>
<tr class="tr2" style="display: none;" bgcolor="#f6f6f6">
<td class="td0"> </td>
<td colspan="4" class="td1234 wordBreakNormal">
职位简介:<span id="jobinfo42305701">1.性别不限,18-35岁。 2.中专及中专以上学历。医学药学相关专业或财务专业。 3.具同职工作经验者优先。欢迎应届生。</span>
</td>
<td class="td5">
 
<span onclick="zzSearch.saveJobClk( '42305701' , event );" style="display: none;">
<img src="http://img01.51jobcdn.com/im/2009/search/sctb.gif" border="0" align="absmiddle"> 收藏
</span>
</td>
</tr>
<tr class="tr3"><td colspan="6"></td></tr>

我要匹配上文中的<tr class="tr0">...</tr>之间的内容,使用<tr\\s+class=\"tr0\".*?>(.*?)</tr>匹配不到,是因为TR之间有换行回车符,这个如何匹配?
正则我是真的不会啊
...全文
158 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hangang7403 2010-04-13
  • 打赏
  • 举报
回复
谢谢,接分
-过客- 2010-04-12
  • 打赏
  • 举报
回复

(?is)<tr\s+class="tr0"[^>]*>(.*?)</tr>
//or
(?is)<tr\s+class="tr0"[^>]*>((?!</?tr\b).)*</tr>
sxldfang 2010-04-12
  • 打赏
  • 举报
回复
用这个,仅匹配中间的内容:
(?<=<tr\s+class=\"tr0\".*?>)(.*?)(?=</tr>)

匹配选项不能用Multiline而应该用 RegexOptions.Singleline
usersname 2010-04-12
  • 打赏
  • 举报
回复
*? - 惰性匹配

.*? - 除换行

[\s\S]*? - 所有字符
usersname 2010-04-12
  • 打赏
  • 举报
回复
解决就好,蹭点分。
weberwong 2010-04-12
  • 打赏
  • 举报
回复
string s = "<tr class=\"tr0\">..\n.</tr>";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("<tr\\s+class=\"tr0\".*>([^<]*)</tr>", System.Text.RegularExpressions.RegexOptions.Multiline);
System.Text.RegularExpressions.Match match = reg.Match(s);
Console.WriteLine(match.Groups[1]);

你试试这个,可以带换行
zhgroup 2010-04-12
  • 打赏
  • 举报
回复
直接取\"http://search.51job.com/job/.*?\"了
散分了
weberwong 2010-04-12
  • 打赏
  • 举报
回复
正则有个选项是多行匹配
.net的话是RegexOptions.Multiline,用Regex两个参数的那个构造方法产生表达式对象
zhgroup 2010-04-12
  • 打赏
  • 举报
回复
<tr\s+class=\"tr0.*?>(?s:.*)</tr>
可以匹配到,但这个的结果把<tr class="tr0">..</tr>后边的也匹配了

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧