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

使用UWC java正则表达式将Mediawiki迁移到Confluence,但无法在线与| thumb匹配,java,regex,mediawiki,confluence,Java,Regex,Mediawiki,Confluence,我试图修改一个现有的java正则表达式行,以补偿mediawiki中嵌入的图片在附件名称末尾用“|thumb | none”格式化的情况。我对regex不是很熟悉,一直在努力让它发挥作用。当程序运行时,我需要将这个“[[file:send-rec.jpg | thumb | none]]”转换为“!send-rec.jpg!”但只有在正则表达式检测到它是一个图像文件(jpg | gif | bmp | png)时,转换文件中才有一行我可以修改: Mediawiki.0402-re_file_to

我试图修改一个现有的java正则表达式行,以补偿mediawiki中嵌入的图片在附件名称末尾用“|thumb | none”格式化的情况。我对regex不是很熟悉,一直在努力让它发挥作用。当程序运行时,我需要将这个“[[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不太熟悉,但是从输入中捕获名称的正则表达式,例如[[file:send-rec.jpg | thumb | none]]可以这样做:
\[\[file:(.*)\.*

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

以下是使用在线测试仪的示例:

如果您能提供更多的格式示例,我将更新正则表达式,使其更加具体

更新

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

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


解释和测试:

感谢您的开始,这里有更多的例子来说明它的外观:[[File:EDI.png|thumb|304x304px|none][[File:RMS Home screen.png|thumb|none][[File:ClipCapIt-170110-133309.png]]有时没有aa“|”,但输出仍然需要是以“!”结尾的文件本,这就足够了:
\[\[File:(*?)(?:\||])
。这应该捕获第一个组中的文件名,然后您可以在其周围使用“!”进行格式化。还请确保使用“不区分大小写”设置进行搜索。请查看此处以检查其工作原理:这似乎可行,但是否可以修改为仅适用于扩展名为.jpg.bmp.gif..png的图像文件?进一步测试,最后一个示例是在替换为“!$1!”时返回“!send-rec.bmp!thumb | none]]”