我很难理解这些正则表达式。。。在
我有一根这样的绳子:
<wn20schema:NounSynset rdf:about="&dn;synset-56242" rdfs:label="{saddelmageri_1}">
我想使用findall()和groups来获得:
^{pr2}$我可以用“synset-[0-9]”来匹配数字,用“{(.*?)来匹配单词}“但是我怎么写才能得到上面的结果呢?在
下面是一个问题,下面是一些问题:
<wn20schema:NounSynset rdf:about="&dn;synset-2589" rdfs:label="**{cykel_3: trehjulet cykel; tricykel,1_1}**">
在本例中,我想提取{}之间的内容,结果如下:
['2589', ['cykel', 'trehjulet cykel', 'tricykel']]
这样我以后可以把它作为key(2589):value(['cykel','trehjulet cykel','tricykel'])对放入字典。在
有什么想法吗?在
请参见对this question的顶部答案。用正则表达式解析xml通常是个糟糕的主意。XML解析器就是为此而构建的。在
最快的方法可能是python的built-in minidom
如果您经常使用这些数据,甚至可以考虑使用专门的RDF库(例如RDFLib)。 如果不是这样,XML解析器绝对是最好的选择!在
label
会在{不管怎样,我尝试应用一个XML解析器,但是那里的
&dn;
出现了一个“未定义的实体错误”。你能发布文件的顶部吗(doctype、命名空间定义等等)?在由于这似乎是xml数据,所以最好使用xml解析器,因为用正则表达式解析xml非常非常困难。在
但是,既然你特别要求一个正则表达式。。。在
您的规范有点不精确,对于正则表达式,您需要非常精确地确定什么是匹配。例如,将rdfs:标签值总是有一个你想脱掉的?每行总是只有一个这样的数据块,还是每行有多个?还有,结果的顺序重要吗?在
这里有一个快速的方法,可以让你接近你想要的:
当我运行上述命令时,我得到以下输出,这是一个包含两个元组的列表,其中包含您想要的两个字符串(尽管顺序不同):
^{pr2}$相关问题 更多 >
编程相关推荐