KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

正規表現についてのメモ

 正規表現

詳説 正規表現 第3版

詳説 正規表現 第3版

 

 正規表現についていろいろ調べてみたかったので、ちゃんとした本を読んでみようかと思います。プログラムのコードの大部分を正規表現で書いたほうが、プログラムが短く書けるかもしれません。

 青空文庫形式、でんでんマークダウン、かんたん電子書籍作成について相互に変換できるようになる担保として。

青空文庫形式

ルビの部分の選択をmeryで文字に強調表示させて見やすくする、構文ファイルのところの正規表現で。

|.+?》

《.+?》

にしたけれど、正確を期すならば、どういうのがいいのかという悩みの種。

|?(.+?)《(.+?)》これかな

一つ目の「|」があってもなくてもいい。ない場合は 「《.+?》」で「《」と「》」で囲まれた文字を選択することができる。

 青空文庫形式

http://www.aozora.gr.jp/annotation/

 

 青空文庫形式では、ひらがな漢字《るび》という形ならば、「|」が必要がないけれど、

漢字|漢字《るび

という形ならば|」を必要とする。ただし、ルビを付ける部分が漢字だけとは限らない。ひらがなにルビをつけたりアルファベットにルビを付ける場合もあるかもしれない。

 

ほかの形式に変換するには、

でんでんマークダウンのルビ

{電子出版|でんししゅっぱん}にするには、

置換は{$1|$2}でいいのかな。

 かんたん電子書籍作成のルビ

漢字(るび)という形

置換は$1($2)

 

HTMLのルビ

<ruby>$1<rt>$2</rt></ruby>

 

html ⇒青空文庫ルビ

<ruby>(.+?)<rt>(.+?)</rt></ruby>

$1$2

青空文庫 ルビ 正規表現でググったら、なんかあった。

http://indesign-pdf.seesaa.net/article/380057204.html

|?([々?一-龠]+)《(.+?)》

 

でいいのかな?

と思ったがそれだけじゃ問題のような気がする。というのも外字があるし、ルビを付ける側の文字は漢字じゃなくてもいいのでそれもまた問題になるかな。

外字は、漢字としてあらわせてない文字を、漢字の作りで表している場合がある。

そうすると漢字のコードだけで表していると、間違う。ルビを付ける部分が漢字だけとは限らない。ひらがなにルビをつけたりアルファベットにルビを付ける場合もあるかもしれない。

http://www.aozora.gr.jp/cards/001091/files/42315_15931.html

ヘンデルとグレーテル

いったんA《アー》といってしまえば

 という例がある。そうするには単語の境界について判断するしかない。

文字種での区切り

http://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/CharactorType.html

 

|がない部分については、

 ([々?一-龠]+)《(.+?)》

 でいいと思う。その他は

|(.+?)《(.+?)》

にしたほうがエラーが少なそうだ。

 外字の問題は先に、漢字に変換するプロセスを挟むはずなのでいいのかもしれない。

 

正規表現を書いて、エディターに構文ファイルを作って色つけるするようにやっていたけれど自信がないので確認のために調べています。

メモ

\(([^()]*)\)

()に囲まれた文字の選択。ただし内側に()がないこと。

正規表現に使われている文字を正規表現で選択しようとするとなんというか苦労するので、そこを知りたいのである。