Перенос Mediawiki в Confluence с использованием регулярного выражения Java UWC, не совпадающего с | thumb on line - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь изменить существующую строку регулярных выражений 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}" является заполнителем.

Спасибо за любую помощь или руководство.

1 Ответ

0 голосов
/ 07 мая 2018

Я не очень знаком с Java, но регулярное выражение для захвата имени из ввода, такого как [[file: send-rec.jpg | thumb | none]], можно сделать так: \[\[file:(.*?)\|.*.

Имя файла должно быть в первой захваченной группе (без учета совпадения всей строки).

Вот пример использования онлайн-тестера: https://www.regexplanet.com/share/index.html?share=yyyyyhjqd0r

Если вы предоставите больше примеров формата, я обновлю регулярное выражение, чтобы оно было более конкретным.

UPDATE

Вот регулярное выражение, которое должно работать для всех предоставленных случаев и только для .jpg / .gif / .bmp / ​​.png:

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

Пояснения и тесты: https://regex101.com/r/3lAH24/5

...