首页 新闻 搜索 专区 学院

如何写正则表达式校验文本格式,提取所需内容

0
悬赏园豆:100 [待解决问题]

假设规范的文本内容如下

<!--文件头--!>
//这是一个注释行
<测试1::csdn url=bbs>
这是我经常上的bbs论坛
</测试1::csdn>

//这还是一个注释行
//再增加一行注释行
<测试2::cnblog name=博客 url=blog>
也是一个学习的好地方
我也来问一个问题
</测试2::cnblog>

//最后一个例子
<换个名字::sina class=新闻>
看看新闻吧
</换个名字::sina>

 

(1)首先要求能够判断文本内容是否规范,校验文本内容的格式,这里有点类似XML格式,假设如下
<测试::csdn name=博客>
也是一个学习的好地方
</测试::cnblog>

或者

<测试::cnblog name=博客>
也是一个学习的好地方
</测试::cnblog>>

 能够判断结构不正确

(2)其次要求能够正确获取内容,以下面这个为例

<测试2::cnblog name=博客 url=blog>
也是一个学习的好地方
我也来问一个问题
</测试2::cnblog>

获取信息如下
前缀:测试2
后缀:cnblog
属性:名称  值
     name  博客
     url       blog

内容:也是一个学习的好地方
         我也来问一个问题

 

感觉很难啊,晕死了

小兔快跑的主页 小兔快跑 | 初学一级 | 园豆:100
提问于:2010-10-29 23:46
< >
分享
所有回答(3)
0

<\w+\:\:(?<name>\w+)(?:\s+(?<attr>\w+)\=(?<value>\w+))+>\s?(?<content>\w?)<\/(?<name>\w+)>

这个还真不好写,虽然可以匹配但取值会有问题,如果写语法分析会好些的

LittlePeng | 园豆:3395 (老鸟四级) | 2010-10-30 11:28
0

弄了半天取属性值搞不定,当属性有多组的时候只能取到最后一组,没辙,谁有高招不?

wgz | 园豆:1254 (小虾三级) | 2010-10-30 12:56
的确
支持(0) 反对(0) LittlePeng | 园豆:3395 (老鸟四级) | 2010-10-30 13:22
0

::是否可以替换为其他字符串,如"______",再用标准XML格式验证

但是像“name=博客 url=blog”也是不符合XML规范的,应该有双引号

邀月 | 园豆:25375 (高人七级) | 2010-10-30 21:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册