#freeze
[[.NET]]

青空文庫形式のルビ表現って『小説家になろう』みたいなサイトでも使われているのよね。ひとつの定番と言えるわ。

HTMLのルビタグ(rubyタグ)を、この形式に変更してみましょう。

正規表現(System.Text.RegularExpressions)を使うわ。

 using System.Text.RegularExpressions;
 :
 :
 :
        /// <summary>
        /// 雑多なタグを削除する。
        /// </summary>
        /// <param name="dx"></param>
        /// <returns></returns>
        static string tagRemover(string dx)
        {
            string r = dx;
            r = Regex.Replace(r, @"(<[^>]+>)", "");
            return (r);
        }
 
        /// <summary>
        /// HTMLのRubyタグを青空文庫形式のルビつきテキストに直す。
        /// </summary>
        /// <param name="q">入力値</param>
        /// <param name="ff">先頭に「|」をつけるかどうか。</param>
        /// <returns>補正後のカッコつきテキスト</returns>
        static string cnvRuby(string q,Boolean ff)
        {
            string sep = "|";
            if (ff == false)
            {
                sep = "";
            }
            string r = Regex.Replace(q, @"<ruby>", sep, RegexOptions.IgnoreCase);
            r = tagRemover(r);
            return (r);
        }
 
        static void Main(string[] args)
        {
            string r = cnvRuby("<ruby><rb>残念</rb><rp>(</rp><rt>ざんねん</rt><rp>)</rp></ruby>、それは<ruby><rb>私</rb><rp>(</rp><rt>わたし</rt><rp>)</rp></ruby>のおいなりさんだ", true);
            Console.WriteLine(r);
            Console.ReadLine();
        }
    }
 }

#ref(rubytag1.png)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS