使用 UWC java 正则表达式无法与在线 |thumb 匹配将 Mediawiki 迁移到 Confluence

Migrate Mediawiki to Confluence using UWC java regex failing to match with |thumb on line

我正在尝试修改现有的 java 正则表达式行以补偿当 mediawiki 中的嵌入图片在附件名称末尾使用“|thumb|none”格式化时。我对正则表达式不是很熟悉,并且一直在努力使这项工作成功。当程序是运行时,我需要把这个“[[file:send-rec.jpg|thumb|none]]”变成这个“!send-rec.jpg! “但只有当正则表达式检测到它是一个图像文件 (jpg|gif|bmp|png) 时,转换文件中才有一行我可以修改:

Mediawiki.0402-re_file_to_images.java-regex=(?i)\[\[file:\s*([^\]\|\s]+)\s*\]\]{replace-with}!!

“{replace-with}”是一个占位符。

感谢您的帮助或指导。

我对 Java 不太熟悉,但是正则表达式从输入中捕获名称,例如 [[file:send-rec.jpg|thumb|none] ] 可以这样做:\[\[file:(.*?)\|.*.

文件名应该在第一个捕获的组中(不考虑整行匹配)。

下面是一个使用在线测试器的例子:https://www.regexplanet.com/share/index.html?share=yyyyyhjqd0r

如果您愿意提供更多格式示例,我会更新正则表达式以使其更具体。

更新

这是一个正则表达式,应该适用于所有提供的情况,并且仅适用于 .jpg / .gif / .bmp / .png:

\[\[file:(.*?(?:\.jpg|\.gif|\.bmp|\.png))(?:\||]).*

解释和测试:https://regex101.com/r/3lAH24/5