4.傍点表記を繰り返しを利用してルビ化する

対象ソースは以下の通り


#傍点表記をループで対応

#1文字単位でルビ振る(変な均等割り付けを自動発生させないため)

#テンプレート生成用変数初期化

$tnWdTemp=''

$tnKkymTemp=''

$tnKkymregx=''

#-lt=<(未満)で判定するため上で設定した傍点振る文字の最大値+1する

$tnMax = $tnMax + 1

#ループで設定した傍点振る文字の最大分置換を実行

for($i=1; $i -lt $tnMax;$i++){

  #置換用文字列を連結(ループ中溜め込むことで現在の周回分の文字に対応)

  $tnWdTemp=$tnWdTemp + $tnWd1 + '・' + $tnWd2 + '$' + $i + $tnWd3

  #正規表現用文字列を連結 (ループ中溜め込むことで現在の周回分の文字に対応)

  $tnKkymTemp=$tnKkymTemp + $tnKkym2

  #目印になる「」を正規表現につける

  $tnKkymregx=$tnKkym1 + $tnKkymTemp + $tnKkym3

  #置換実行

  $strRepRaw = $strRepRaw -replace $tnKkymregx,$tnWdTemp

}


テンプレート生成用変数初期化では、この後文字連結を繰り返すための変数を初期化しています。

また、最初に設定した傍点文字数の最大に+1してループ条件を「傍点文字数の最大+1未満であれば」に則す形にします。

「for($i=1; $i -lt $tnMax;$i++)」で、「カウンタとなる変数iを1からループ開始して」、「変数iが変数tnMax未満(-lt)の間ループし続け」、「ループ内の処理({}内の処理)が一回終わったら変数iに1を加算($i++)」になります。


ループ内の処理は置換用のテンプレートを文字連結で作成しています。

内、ワード側の置換後正規表現とカクヨム記法での文字探索部分はループ中にどんどん付け足されていきます。

つまり、簡略化して書くと

 一周目

  ワード側の置換後正規表現(変数tnWdTemp)

   <ルビタグ>・</ルビタグ><ルビ対象文字タグ>$1</ルビ対象文字タグ>

  カクヨム側の文字探索部分(変数tnKkymTemp)

   ([.\w\s]{1})

 二周目

  ワード側の置換後正規表現(変数tnWdTemp)

   <ルビタグ>・</ルビタグ><ルビ対象文字タグ>$1</ルビ対象文字タグ><ルビタグ>・</ルビタグ><ルビ対象文字タグ>$2</ルビ対象文字タグ>

  カクヨム側の文字探索部分(変数tnKkymTemp)

   ([.\w\s]{1})([.\w\s]{1})

という風に周回分増えてく感じです。

この二つの変数だけ強くてニューゲームしてる感じです。


この後、「カクヨム側の文字探索部分(変数tnKkymTemp)」については傍点表記の為の「《《」と「》》」で前後を挟んであげてから、変数strRepRawの内容を置換(-replace)して、再度変数strRepRawに格納します。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る