プロが教える店舗&オフィスのセキュリティ対策術

正規表現でルビを小書きに変換したいです。


ルビとは漢字の傍に小さいフォントの仮名で
ふりがなを振ったものです。

小書きとは っ・ゃ・ゅ・ょ など
ちいさな文字です。

また青空文庫形式では
ルビは《と》で囲んで、

たとえば
会社《かいしゃ》
のように表記します


現代では、ルビでも小書きを使って
会社《かいしゃ》 としますが

昔は校正の方針が違って
ルビには小書きを使わなかったので
会社《かいしや》などと表記されます。


なので、小書きでないルビの作品を
正規表現で
一度に小書きに変換したいと考えてます。


とはいえ、正規表現だけで完璧に変換するのは
難しいと思うので、変換間違いがあっても
大丈夫です。*のちほど目視で確認&訂正するので

なので
下記の条件くらいの変換をしたいです

----

1.変換範囲は
 《と》の、平仮名を変換

2.変換は
 つ・や・ゆ・よ
 →
 っ・ゃ・ゅ・ょ

3.対象文字が先頭,つまり《の直後
 にあった場合は変換しない


例:
妙《みよう》 →妙《みょう》
立派《りつぱ》→立派《りっぱ》
愉快《ゆかい》 →先頭なので変換なし
辰巳《たつみ》→辰巳《たっみ》 *誤変換だが目視訂正するので大丈夫

----


不十分な説明や分かりにくい箇所もあるかと思いますが
後ほど、追記させていただきます。


どうぞ、よろしくお願いします。

質問者からの補足コメント

  • 環境を追記します。
    Mac およびWindowsで
    正規表現が使えるエディタを利用できます。

    MacならCotEditor
    Winなら秀丸エディタです。

      補足日時:2019/01/08 09:59

A 回答 (2件)

すべてのパターンに対応するのは難しいですが。


例えばこちら↓のようなものにするとか。
 (《[あ-わ]*?[あ-わ].??)●(.*?》)
●の部分に「や」「ゆ」「よ」「つ」それぞれを個別に入れ、
 \1〇\2
〇の部分に、対応する「ゃ」「ゅ」「ょ」「っ」を入れてから検索
しながら置換を繰り返すなどが、単純な方法だと思う。

上記で対応できないパターンもあると思いますが、一例として回答
しました。
    • good
    • 0
この回答へのお礼

秀丸で
下記の正規表現で置換したら目的どおりになりました

検索 : (《[あ-わ]*?[あ-わ].??)や(.*?》)
置換 : \1ゃ\2

検索 : (《[あ-わ]*?[あ-わ].??)ゆ(.*?》)
置換 : \1ゅ\2

検索 : (《[あ-わ]*?[あ-わ].??)よ(.*?》)
置換 : \1ょ\2

ありがとうございます。


該当の文字、1文字の変換ですので

徐々《じよじよ》→徐々《じょじよ》となりますが
対象が少ないですし、

上記の置換をもう一度、繰り返すことで
解決したので、大丈夫です。

本当に助かりました。

目的通りでしたのでベストアンサーとさせていただきます。

お礼日時:2019/01/08 10:20

余りにも情報が少なすぎます。


OSはなんでしょうか。
言語は何でしょうか。
入力データテキストファイルでしょうか。
入力データがテキストファイルと仮定すると、1行に1つの単語があるという前提で良いのですか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!