高分求助文本提取的问题,正则表达式

lcy5415 2006-11-22 12:20:22
条目序号:16ZT0509-01
标题:美国对朝鲜籍船将只采取制裁措施
据韩国国际广播电台05月09日19时30分报道:美国从9日起对朝鲜籍船只采取制裁措施。美国财务部当天宣布,‘外国资产管理修正案’正式生效,有鉴于此,美国政府规定禁止美国公司和全球所有美国人购买、租赁或运营朝鲜船籍的船只,美国船只也不能申请朝鲜船籍,并禁止保险公司为朝鲜船籍的船只提供保险业务。据专家分析,目前在朝鲜登记的美国船只有11艘,从朝鲜启程前往美国的朝鲜船只年均只有10艘,美国政府对朝鲜船只进行制裁并不是出于经济方面的考虑,而是考虑到政治方面的因素。与此同时,美国财务部还希望与韩国、澳大利亚和希腊等也对朝鲜船只进行制裁的国家进行合作。
主题词:美国 朝鲜 船只 制裁
统计码:THC13210

条目序号:16ZT0509-02
标题:韩国统一部长官李锺奭访问开城
据韩国国际广播电台05月09日19时30分报道:为了调查开城工业园区第一阶段工程事业,韩国统一部长官李锺奭9日首次对朝鲜开城进行了访问。与李锺奭长官一起前往朝鲜的还有现代集团会长玄贞恩和韩国土地公社副社长权载郁等参与开城工业园区开发事业的企业干部和统一部官员。李锺奭长官当天上午10点抵达了开城工业园区管理委员会,与开城工业园区理事长金东根进行了会谈,并听取了工作汇报。之后,李锺奭长官还参观了入住当地的韩国企业。据分析,在美国把开城工业园区的劳动环境与朝鲜人权问题相提并论之际,统一部长官李锺奭此次访问开城,再次显示韩国政府对开城工业园区兴建事业的坚定立场。
主题词:韩国 朝鲜 开城工业园 访问
统计码:THC13210


想要得到标题的内容:
我用正则仅能得到标题,如下:

(?<=标题:).*(?=\n)

可现在说什么也得不出内容.就是标题以下到 主题词:

之间的东西,现在,从标题取到主题词也没得出来,请大家给看看,谢谢
...全文
295 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hq2008 2007-01-10
  • 打赏
  • 举报
回复
n
gzdiablo 2006-12-01
  • 打赏
  • 举报
回复
200分才拿到20分 LZ太不厚到了 明明我的表达式比较好 就因为来晚了点...........
stone3_hl 2006-11-23
  • 打赏
  • 举报
回复
还是mobydick是高手呀........
mobydick 2006-11-23
  • 打赏
  • 举报
回复
呵呵,我应该加上下面这句话:
我所提供的代码或文本仅供参考。使用这些代码或文本所产生的任何影响和结果,由使用者自己承担相应的义务和责任~~~
myvicy 2006-11-23
  • 打赏
  • 举报
回复
蹭分
ustbwuyi 2006-11-23
  • 打赏
  • 举报
回复
咋一看我还以为是政治问题...
gzdiablo 2006-11-23
  • 打赏
  • 举报
回复
PS(后注): mobydick(敌伯威|我排著队拿著爱的号码牌) 你的方法如果在正文里面存在换行符 则无法匹配 请在写表达式时考虑各种可能性 不要单存完成功能 这样很不负责任
gzdiablo 2006-11-23
  • 打赏
  • 举报
回复
表达式:
@"条目序号:(?<id>[^\n]+)\n标题:(?<title>[^\n]+)\n(?<content>(?:\s|\S)+?)\n主题词:(?<key>[^\n]+)\n统计码:(?<code>[^\n]+)"

MatchCollection matchs = Regex.Matchs(TextBox.Text,"<表达式>",RegexOptions.None)
foreach(Match aa in matchs)
{.....}
序号:Groups["id"]
标题:Groups["title"]
内容:Groups["content"]
主题词:Groups["key"]
统计码:Groups["code"]

查询方式 以回车符 和 标题 为查询键 所以只要格式相对固定就没有问题
因为是以回车符作为查询条件 不会产生\s+所可能产生的不确定因素导致查询失败
并且除content全部组不包含回车符

测试:(你的文本)
结果:
匹配一:
match:(第一段全文 从"序号:" 开始到 "统计码:" 那行换行前为止)
组:
id: 16ZT0509-01
title: 美国对朝鲜籍船将只采取制裁措施
content: (....正文)
key: 美国 朝鲜 船只 制裁
code: THC13210
匹配二:(正常)
petshop4 2006-11-23
  • 打赏
  • 举报
回复
来晚了 都被回答了 以上两回答都对 哈哈
mobydick 2006-11-22
  • 打赏
  • 举报
回复
有点儿小问题,上面那个正则表达式不能匹配最后字符不是回车换行的条目。
用这个就没问题了
string regexStr = "条目序号:(?<sn>.+?)\\s+标题:(?<title>.+?)\\s+(?<content>.+?)\\s+主题词:(?<keyword>.+?)\\s+统计码:(?<code>.+)";
lcy5415 2006-11-22
  • 打赏
  • 举报
回复
是否是文本格式的问题?
内容数据是从文本框中得输入的
mobydick 2006-11-22
  • 打赏
  • 举报
回复
string yourStr = @"条目序号:16ZT0509-01
标题:美国对朝鲜籍船将只采取制裁措施
据韩国国际广播电台05月09日19时30分报道:美国从9日起对朝鲜籍船只采取制裁措施。美国财务部当天宣布,‘外国资产管理修正案’正式生效,有鉴于此,美国政府规定禁止美国公司和全球所有美国人购买、租赁或运营朝鲜船籍的船只,美国船只也不能申请朝鲜船籍,并禁止保险公司为朝鲜船籍的船只提供保险业务。据专家分析,目前在朝鲜登记的美国船只有11艘,从朝鲜启程前往美国的朝鲜船只年均只有10艘,美国政府对朝鲜船只进行制裁并不是出于经济方面的考虑,而是考虑到政治方面的因素。与此同时,美国财务部还希望与韩国、澳大利亚和希腊等也对朝鲜船只进行制裁的国家进行合作。
主题词:美国 朝鲜 船只 制裁
统计码:THC13210

条目序号:16ZT0509-02
标题:韩国统一部长官李锺奭访问开城
据韩国国际广播电台05月09日19时30分报道:为了调查开城工业园区第一阶段工程事业,韩国统一部长官李锺奭9日首次对朝鲜开城进行了访问。与李锺奭长官一起前往朝鲜的还有现代集团会长玄贞恩和韩国土地公社副社长权载郁等参与开城工业园区开发事业的企业干部和统一部官员。李锺奭长官当天上午10点抵达了开城工业园区管理委员会,与开城工业园区理事长金东根进行了会谈,并听取了工作汇报。之后,李锺奭长官还参观了入住当地的韩国企业。据分析,在美国把开城工业园区的劳动环境与朝鲜人权问题相提并论之际,统一部长官李锺奭此次访问开城,再次显示韩国政府对开城工业园区兴建事业的坚定立场。
主题词:韩国 朝鲜 开城工业园 访问
统计码:THC13210
";

MatchCollection mc = Regex.Matches(yourStr, "条目序号:(?<sn>.+?)\\s+标题:(?<title>.+?)\\s+(?<content>.+?)\\s+主题词:(?<keyword>.+?)\\s+统计码:(?<code>.+?)\\s+");
foreach(Match m in mc)
{
m.Groups["sn"].Value;//条目序号
m.Groups["title"].Value;//标题
m.Groups["content"].Value;//内容
m.Groups["keyword"].Value;//主题词
m.Groups["code"].Value;//统计码
}
hegang888888888 2006-11-22
  • 打赏
  • 举报
回复
顶,太复杂了
fdlm_dark 2006-11-22
  • 打赏
  • 举报
回复
蹭分
chenanlin1981 2006-11-22
  • 打赏
  • 举报
回复
蹭分
qwerttyy 2006-11-22
  • 打赏
  • 举报
回复
蹭分~~
mobydick 2006-11-22
  • 打赏
  • 举报
回复
我KAO,楼上的也蹭分啊,哈哈~~~~~~
viena 2006-11-22
  • 打赏
  • 举报
回复
蹭分~~
  • 打赏
  • 举报
回复
xuexi
EddieOO5 2006-11-22
  • 打赏
  • 举报
回复
蹭分~~

62,046

社区成员

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

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

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

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