Aller au contenu

Utilisateur:ZX81-bot/AWB/Modules/Formatnum

Une page de Wikipédia, l'encyclopédie libre.
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using WikiFunctions;
 
namespace AutoWikiBrowser
{
    class Module1 : WikiFunctions.Plugin.IModule
    {
// à copier/coller dans le module à partir d'ici

        /*
         * Module AWB de correction de syntaxe du mot magique {{formatnum:}}
         *
         * Auteur : [[:fr:User:TiChou]]
         * Date création : juillet 2007
         * Date révision : 18 août 2007
         */

        public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
        {
            Skip = false;
            Summary = "";

            ArticleText = Regex.Replace(ArticleText,
                @"\{\{ *formatnum *: *([^\}]*?) *\}\}",
                "{{formatnum:$1}}",
                RegexOptions.IgnoreCase);
            ArticleText = Regex.Replace(ArticleText,
                @"\{\{formatnum:(\d+)\.(\d+)%\}\}",
                "$1,$2 %",
                RegexOptions.IgnoreCase);
            ArticleText = Regex.Replace(ArticleText,
                @"(?<=\{\{formatnum:[-\+]?\d+) *((?:[^\W\d]| )+)\}\}",
                "}} $1");
            ArticleText = Regex.Replace(ArticleText,
                @"(?<=\{\{formatnum:(?![-\+]?(?:\d{1,3},(?:\d{3},)*\d{3}|\d+)(?:\.\d+)?\}\}))[^\}]*(?=\}\})",
                new MatchEvaluator(formatnum));

            return ArticleText;
        }
        private string formatnum(Match m)
        {
            string number = m.Value;
            number = Regex.Replace(number, @"[^\d,\.]", "");
            return number;
        }

// à copier/coller dans le module jusqu'ici
    }
}