求一正则,获取不包含指定字段串中的数据

超级无敌大坏蛋 2006-09-26 09:20:45
求一正则表达式:
俺有一个字符串如下:


<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href="/browse/Listwriter.asp?vwriter=waiisme&idwriter=0&key=0" target=_blank>waiisme</a> 回复日期:2006-4-20 18:40:18</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>

  TO枪杆出人权:谢谢你!<br>  感谢所有支持我的朋友!<br>

<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href="/browse/Listwriter.asp?vwriter=爱啃面包的人&idwriter=0&key=0" target=_blank>爱啃面包的人</a> 回复日期:2006-4-20 18:53:54</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>

  恭喜你!我也是自考的,04年拿到本科文凭.总相信:一分耕作一分收获!<br>

<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href="/browse/Listwriter.asp?vwriter=朱莉叶的阳台&idwriter=0&key=0" target=_blank>朱莉叶的阳台</a> 回复日期:2006-4-20 19:02:58</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>

   TO愚树淋疯:呵呵,好!我读人力资源管理。<br>    TO朱莉叶的阳台:加油!<br>  <br>   谢谢啊!<br>   我读的是汉语言文学呢!<br>
==========================================================================================
想用个正则来获取各段的内容
如果使用正则:作者[^回复日期]*\s*\S*waiisme\s*\S*[^作者]*作者
此时俺可以获取到:
作者:<a href="/browse/Listwriter.asp?vwriter=waiisme&idwriter=0&key=0" target=_blank>waiisme</a> 回复日期:2006-4-20 18:40:18</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>

  TO枪杆出人权:谢谢你!<br>  感谢所有支持我的朋友!<br>

<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者
但是如果我是用:作者[^回复日期]*\s*\S*爱啃面包的人\s*\S*[^作者]*作者
这个时候却没有任何返回的数据
查看它的原因是为因为它里面有了一个“作”字

现求一个判断条件:我怎么才能将包含有作字的那些数据也读取出来?

非常感谢
...全文
868 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
petshop4 2006-09-26
  • 打赏
  • 举报
回复
唉~~刚开锅老鼠就来了~~
一上午唯一的一个100分正则题~~伤心了
www_123du_com 2006-09-26
  • 打赏
  • 举报
回复
哈哈哈!我也是学人家MSDN的!

有这么多分已经非常满足了!

人人都像楼主这么爽快这世界就美好了!
  • 打赏
  • 举报
回复
非常报歉,原来俺的权限只能给100分

结贴,谢谢各位
petshop4 2006-09-26
  • 打赏
  • 举报
回复
....
帖子列表 --》 管理
  • 打赏
  • 举报
回复
在哪里加分的?
没找到啊
  • 打赏
  • 举报
回复
To:
petshop4 原来是我的测试代码写错了,您老兄的代码没问题,呵呵
TO:
www_123du_com(鼠·神·泪)
你也得也很正确
决定加分结贴
petshop4 2006-09-26
  • 打赏
  • 举报
回复
恩 从网上看过负声明的例子 就没实际应用过
今天学到一招 哇哈哈
Ivony 2006-09-26
  • 打赏
  • 举报
回复
用负预测先行断言应该是可以做到的。
petshop4 2006-09-26
  • 打赏
  • 举报
回复
TO www_123du_com GOOD
从你那学到了反声名 哈哈
改改我的正则 <TABLE((?!回复日期).(?<!回复日期))*?vwriter=朱莉叶.*?</table>.*?(?=<TABLE)
www_123du_com 2006-09-26
  • 打赏
  • 举报
回复
我要后来居上!
www_123du_com 2006-09-26
  • 打赏
  • 举报
回复
作者[^回复日期]*\s*\S*waiisme\s*\S*[^作者]*作者

---->

作者((?!回复日期).(?<!回复日期))*\s*\S*waiisme\s*\S*((?!作者).(?<!作者))*作者

//看看是不是你要的效果
petshop4 2006-09-26
  • 打赏
  • 举报
回复
老鼠 你来晚啦~~这分偶的啦 哈哈
petshop4 2006-09-26
  • 打赏
  • 举报
回复
RegexOptions.Multiline
哥们 不能多行哈
多行会把字符串的所有/R/N拆分成单行分别匹配的
www_123du_com 2006-09-26
  • 打赏
  • 举报
回复
源内容你上面已经说了,你再说一下你想得到的内容。我实在没看懂。
petshop4 2006-09-26
  • 打赏
  • 举报
回复
帮你写了代码

string str="<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href=\"/browse/Listwriter.asp?vwriter=waiisme&idwriter=0&key=0\" target=_blank>waiisme</a> 回复日期:2006-4-20 18:40:18</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>\r\n\r\n  TO枪杆出人权:谢谢你!<br>  感谢所有支持我的朋友!<br>\r\n\r\n<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href=\"/browse/Listwriter.asp?vwriter=爱啃面包的人&idwriter=0&key=0\" target=_blank>爱啃面包的人</a> 回复日期:2006-4-20 18:53:54</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>\r\n\r\n  恭喜你!我也是自考的,04年拿到本科文凭.总相信:一分耕作一分收获!<br>\r\n\r\n<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href=\"/browse/Listwriter.asp?vwriter=朱莉叶的阳台&idwriter=0&key=0\" target=_blank>朱莉叶的阳台</a> 回复日期:2006-4-20 19:02:58</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>\r\n\r\n   TO愚树淋疯:呵呵,好!我读人力资源管理。<br>    TO朱莉叶的阳台:加油!<br>  <br>   谢谢啊!<br>   我读的是汉语言文学呢!<br>\r\n<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href=\"/browse/Listwriter.asp?vwriter=waiisme&idwriter=0&key=0\" target=_blank>waiisme</a> 回复日期:2006-4-20 18:40:18</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>\r\n\r\n  TO枪杆出人权:谢谢你!<br>  感谢所有支持我的朋友!<br>";
string temp=Regex.Match(str,"<TABLE[^日]*?vwriter=朱莉叶.*?</table>.*?(?=<TABLE)",RegexOptions.Singleline).Value;
Response.Write(temp);
  • 打赏
  • 举报
回复
TO:
petshop4(除了吃饭睡觉 还会点正则)
以下我写的代码(C#):

string UrlPattern = txtPattern.Text.Trim();
string m_HtmlContent=txtSource.Text.Trim();
MatchCollection Matchs = Regex.Matches(m_HtmlContent, UrlPattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);
string m_Value="";
txtResult.Text="";
foreach(Match m in Matchs)
{
m_Value= m.Value;
txtResult.Text=m_Value + "\n" + txtResult.Text;
}
txtSource.Text 是原串
txtPattern.Text 是正则
txtResult.Text 是经过正则之后的结果

petshop4兄,我哪里写错了?
www_123du_com 2006-09-26
  • 打赏
  • 举报
回复
首先你可以看一下这个:

http://blog.csdn.net/www_123du_com/archive/2006/09/06/1184569.aspx
petshop4 2006-09-26
  • 打赏
  • 举报
回复
晕~~
测试代码:你的数据
正则:<TABLE[^日]*?vwriter=朱莉叶.*?</table>.*?(?=<TABLE)
正则模式:Singleline
匹配数:1
*******************
<TABLE cellspacing=0 border=0 bgcolor=f5f9fa width=100% ><TR><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom></TD><TD><font size=-1 color=green><br><center>作者:<a href="/browse/Listwriter.asp?vwriter=朱莉叶的阳台&idwriter=0&key=0" target=_blank>朱莉叶的阳台</a> 回复日期:2006-4-20 19:02:58</font> </center></TD><TD WIDTH=100 ALIGN=RIGHT VALIGN=bottom> </TD></TR></table>

   TO愚树淋疯:呵呵,好!我读人力资源管理。<br>    TO朱莉叶的阳台:加油!<br>  <br>   谢谢啊!<br>   我读的是汉语言文学呢!<br>

TO withjun(withjun) 我的那正则是放在文本框读到程序里的 你直接写程序的话要改改哈
  • 打赏
  • 举报
回复
TO:
petshop4(除了吃饭睡觉 还会点正则)

测试过了,不行啊

用JS 不成功 用 C#的也不成功
Csharp110 2006-09-26
  • 打赏
  • 举报
回复
学习中,帮顶!
加载更多回复(10)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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