#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)