【发布时间】:2012-10-11 19:13:10
【问题描述】:
可能重复:
Wikipedia : Java library to remove wikipedia text markup removal
我必须清理一些来自 Confluence 的内容。该内容几乎是干净的;但是,有些事情是这样的:
- [链接|]:没有url部分的链接
- *[link|]*:粗体链接(不带 url 部分)
- *文本*:粗体文本
- _*文本*_:斜体粗体文本
等等。 我需要编写一个清除所有这些的正则表达式,所以,我做了类似的事情:
String wikiCleanMarkupRegex = "\\\\[(.*?)[\\\\|.*?]?\\\\]|\\\\*(.*?)\\\\*|_(.*?)_";
但这并不能清除所有内容,我的意思是,如果我将 #2 中的链接提供给它,我会得到:
[链接|]
这不是我想要的,我想得到“链接”……所以,我需要一次又一次地重新解析字符串,直到找不到其他匹配项。
这真的很慢,因为有数百万条记录需要清理,那么,有没有什么方法可以一次完成所有的正则表达式?
非常感谢。
【问题讨论】:
-
另外,如果我有类似 _*[link|]*_: A link (without the url part) in bold and italic的东西,我需要解析它3次,一次删除斜体,其他删除粗体和最后一个删除括号......这对于我需要的东西来说太慢了
标签: java regex performance mediawiki matcher