1

我正在尝试从 clojure 中的 wikipedia/wikimedia 标记结构中提取一些数据。

{{Infobox company
...
...
|operating_income = {{Increase}} US$ 26.76 billion (2013)<ref name=10K/>
|net_income       = {{Increase}} US$ 21.86 billion (2013)<ref name=10K/>
|assets           = {{Increase}} US$ 142.43 billion (2013)<ref name=10K/>
|equity           = {{Increase}} US$ 78.94 billion (2013)<ref name=10K/>
...
}}

我需要该{{infobox company .... }}地区的信息。

所以我使用了这个正则表达式(re-seq #"\{\{(.*?)}\}" above-txt)

但这给了我一些正则表达式,但还不是全部。这个页面有很多额外的数据以及嵌套的 {{ }}

您可以在http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=microsoft&prop=revisions&rvprop=content查看全文

我认为我的正则表达式的问题在于它没有处理嵌套的 {{ .. }} 标签。

4

1 回答 1

0

如果正则表达式令人沮丧,您可以考虑使用Instaparse制作一个可以处理任意嵌套表达式的小型解析器。虽然它适用于更多输入类型,但我的重量有点重。

于 2013-10-17T16:57:02.530 回答