You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用UWC迁移MediaWiki至Confluence时Java正则匹配带thumb图片失败求助

解决MediaWiki图片链接转换的Java正则方案

没问题,我来帮你搞定这个正则表达式的需求!咱们一步步拆解,确保精准匹配并转换你要的格式。

需求回顾

你需要把这种格式的MediaWiki嵌入图片:

[[file:send-rec.jpg|thumb|none]]

转换成:

!send-rec.jpg!

而且只处理jpg、gif、bmp、png这几种格式的图片。

正则表达式写法

针对这个场景,我们可以用下面的正则(Java里要注意转义特殊字符):

String regex = "\\[\\[file:([a-zA-Z0-9_-]+\\.(jpg|gif|bmp|png))\\|thumb\\|none\\]\\]";

正则各部分解释:

  • \\[\\[file::匹配开头的[[file:,因为[是正则的特殊字符,所以必须用\\转义。
  • ([a-zA-Z0-9_-]+\\.(jpg|gif|bmp|png)):这是核心的捕获组,用来提取我们需要的文件名:
    • [a-zA-Z0-9_-]+:匹配文件名的主体部分,允许字母、数字、下划线和连字符(如果你的文件名里有空格或其他特殊字符,可以把它们加到这个字符集里,比如改成[a-zA-Z0-9_\\- ])。
    • \\.:匹配文件名里的点号,同样需要转义。
    • (jpg|gif|bmp|png):限定只匹配指定的四种图片格式。
  • \\|thumb\\|none\\]\\]:匹配结尾的|thumb|none]],|和]都是特殊字符,必须转义。

Java代码示例

直接用String.replaceAll()就能快速完成替换,如果你需要支持大小写不敏感的扩展名(比如JPG、Gif),可以用Pattern和Matcher来实现:

基础版本(区分大小写)

String input = "[[file:send-rec.jpg|thumb|none]]";
String regex = "\\[\\[file:([a-zA-Z0-9_-]+\\.(jpg|gif|bmp|png))\\|thumb\\|none\\]\\]";
String output = input.replaceAll(regex, "!$1!");
System.out.println(output); // 输出:!send-rec.jpg!

大小写不敏感版本

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MediaWikiImageConverter {
    public static void main(String[] args) {
        String input = "[[file:photo.JPG|thumb|none]] [[file:anim.Gif|thumb|none]]";
        String regex = "\\[\\[file:([a-zA-Z0-9_-]+\\.(jpg|gif|bmp|png))\\|thumb\\|none\\]\\]";
        Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(input);
        
        String output = matcher.replaceAll("!$1!");
        System.out.println(output); // 输出:!photo.JPG! !anim.Gif!
    }
}

测试边界情况

如果你的文本里有多个图片链接,或者夹杂其他内容,这个正则也能精准匹配:
输入:"这是一张测试图[[file:test-bmp.bmp|thumb|none]],旁边还有[[file:logo.png|thumb|none]]"
输出:"这是一张测试图!test-bmp.bmp!,旁边还有!logo.png!"

内容的提问来源于stack exchange,提问作者droidian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:58:24