假设规范的文本内容如下
<!--文件头--!>
//这是一个注释行
<测试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
内容:也是一个学习的好地方
我也来问一个问题
感觉很难啊,晕死了
<\w+\:\:(?<name>\w+)(?:\s+(?<attr>\w+)\=(?<value>\w+))+>\s?(?<content>\w?)<\/(?<name>\w+)>
这个还真不好写,虽然可以匹配但取值会有问题,如果写语法分析会好些的
弄了半天取属性值搞不定,当属性有多组的时候只能取到最后一组,没辙,谁有高招不?
::是否可以替换为其他字符串,如"______",再用标准XML格式验证
但是像“name=博客 url=blog”也是不符合XML规范的,应该有双引号