【问题标题】:Migrate Mediawiki to Confluence using UWC java regex failing to match with |thumb on line使用 UWC java regex 将 Mediawiki 迁移到 Confluence 无法与在线 |thumb 匹配
【发布时间】:2018-05-07 17:25:20
【问题描述】:

我正在尝试修改现有的 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}!$1!

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

感谢您的帮助或指导。

【问题讨论】:

    标签: java regex mediawiki confluence


    【解决方案1】:

    我对 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

    【讨论】:

    • 感谢您的开始,这里有更多示例说明它的外观:
    • [[File:EDI.png|thumb|304x304px|none]] [[File:RMS Home screen.png|thumb|none]] [[File:ClipCapIt-170110-133309.PNG] ] 有时没有一个“|”但输出仍然需要是以“!”结尾的文件簿
    • 这应该足够了:\[\[file:(.*?)(?:\||])。这应该捕获第一组中的文件名,然后您可以使用“!”进行格式化周围。还要确保使用“不区分大小写”设置进行搜索。请在此处查看它的工作原理:regex101.com/r/3lAH24/2
    • 这似乎可行,但可以将其修改为仅适用于具有 .jpg .bmp .gif 的图像文件。 .png 文件扩展名?
    • 进一步测试,给出的最后一个示例是在替换为“!$ 1!”时返回“!send-rec.bmp!thumb|none]]”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多