#!/usr/bin/env perl use 5.36.1; use warnings; use strict; use utf8; use autodie; use warnings qw< FATAL utf8 >; use open qw< :std :utf8 >; use charnames qw< :full >; use feature qw< unicode_strings >; binmode(STDIN, ":utf8"); binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8"); use Text::Undiacritic qw(undiacritic); $^I = ".bak"; my $voir = '**Voir :** proton, solution hydrogénée'; $voir =~ s/ (?:^\*\*Voir\s:\*\* | \G(?!^) (?!\[)) \K (\s?) ((\w[\/*]*) (?:[^\.,;\n\r]\s?)+) [\/*]*([\.,;])?[\/*]* / "$1\[\[glossaire:entrees:" .lc(undiacritic($3)) .":" .lc(undiacritic($2 =~ tr[ \/*][_]dr)) ."|" .$2 =~ tr[\/*][]dr ."\]\]" .(defined($4) ? $4 =~ tr[\/*][]dr : '.') /gemx; print $voir, "\n";