MHFのチャットログで日付やIDだけ消したい時の一括置換・削除方法

 団員は随時募集中です。募集要項をご覧ください。
 ⇒MHF-Z 猟団「Amb-i-t」猟団員募集中 / 団員募集要項
 今週きている定期イベント等についてのまとめ記事はこちら。
 ⇒今週きているイベントのブログ内記事まとめ

ゲームのチャットログ抽出したいけど日付とかIDとかいらん!から消したい!って時に使えそうな小技です。

需要あるかはわからんぽす・・・でも団会議のログとかは抜き出すの結構疲れるので、メモ代わりにでも残しときます。使いたい方はどうぞ。

※Wordを使用します。ワイルドカードが使えるエディタなら同じようなことはできると思います。

MHFのチャットログの場所

最初に注意ですが、パソコン版の場合です。

PS4,PS3,PSvitaではチャットログの保存場所がないので多分できないと思います(PC垢連携はよ)。PS4とかでチャットログを残しておきたい場合はSSを撮って保存しておくのが一番確実かと。

PC版だと、デフォルト設定のままならインストールしたMHFはCドライブあたりに入ってるはずです。

このフォルダの中にある「チャットログ」がお目当てのフォルダ。日付順に並んでます。
保存場所が同じなら、赤く囲ったところをクリックして「C:¥Program Files (x86)¥CAPCOM¥Monster Hunter Frontier Online」をそのまま打ち込んでもらってもいけると思います。

ワイルドカードによる時間やIDの一括置換(削除)

MHFのログを見るとこんなふう↓になってますよね。これ私のPCサブのログなんですが。

[2018/01/20 15:17:35 (UTC+09:00:00) ID:****** > GUILD ]rinrei > ちゃー

でもログ抽出したい時は [日付 時間 ID 宛先] がいらないっていうか邪魔なわけです。

じゃあ「置換」機能で全部消しちゃえばいいじゃない!

確かに置換は「置換後の文字列」の指定を空欄にしておけば「何にも置換しない=削除する」となって、一括での処理が可能です。・・・が、 [ ]  内全部取っ払いたいとなった時、発言した時間やIDは人によって違います。

全てに一致する条件はなかなか指定できないので、一括で置換しようとしてもうまくいきません。だからといって、

IDを置換して・・・
「GUILD」(送信先)を置換して・・・
置換できない時間はひとつずつ手で消して・・・

なんてやっていくのはものすごい手間ですよね。

そこで使うのが「ワイルドカード」

ワイルドカードなら「1」を「0」にという置換だけではなく、「任意の文字列」に対して「0」にという指示ができて便利です。まずはメモ帳なんかで開いたチャットログを全部コピーしてWordに貼りつけます。

そうしたらキーボードの「Ctrl+H」で置換の画面を開き、下の手順で進めてみてください。

  1. 左下の「オプション」をクリックして「ワイルドカードを使用する」にチェック
  2. 「検索する文字列」に \[*\] と入力
  3. 「置換後の文字列」は 「 」(空白) のまま「すべて置換」をクリック

これだけで名前より前がパパーッと消えるはずです。

[2018/01/20 15:17:35 (UTC+09:00:00) ID:****** > GUILD ]rinrei > ちゃー

rinrei > ちゃー

私は主に団会議の議事録をまとめるために使ってますが、用途は様々です。

団チャで面白いやりとりあったけど会話部分だけ抜き出すのめんどおおお!って時とか、何かと便利かなーっと。使いたい場面があったら使ってみてください。

ワイルドカードのプチ解説

ワイルドカードは簡単に仕組みを覚えておくだけでもいろいろと応用がきくようになります。

これこそ需要あるかわかりませんが、自分でも何かの用途で使ってみたい!という方もいるかもしれないので豆知識としてプチ解説(というか備忘録)。

「*」について

ワイルドカードで指定している「*」は任意の文字列を指します。

任意の文字列は「1」でも「5」でも「F」でも「あ」でも、何でもOK。複数の文字列「モンハンフロンティア」にでも、どれでも化けることができる優れものです。

置換したい文字列に「1」と入力 → 「1」だけが置換対象
置換したい文字列に「*」と入力 → 「1」「あ」「もんはん」全てが置換対象

今回のワイルドカード \[*\] なら、日付や時刻、IDを丸ごと「*」で一括指定しています。

「\」について

¥は特定の文字列を示すものではありません。

これは\の直後にくる記号を「そのまま記号として見てください」と指示するために使っています。本来、 [ ] や ( ) は「*」のようにワイルドカードの指定で使える記号で、そのまま書くと違った意味で捉えられてしまいます。

例えば [ ] なら「 [ ] 内のいずれかの文字列に該当する場合に置換」。置換したい文字列に 「x[abc]y」 と入力すると、「xay」「xby」「xcy」を該当箇所と認識します。つまり、「 [ ] をそのまま文字列として見る」ことができない、ということです。

[*] と指定して [(任意の文字列)] を削除したい
⇔ [*] と指定しても [ ] が文字列として認識されず指定対象にならない

今回はチャットログの日付やIDが [ ] 内にあるため、 [ ] の範囲内を丸ごと消してしまうのが手っ取り早い方法。ワイルドカードの指示としては「 [ から ] までを丸ごと置換(削除)してくれ」が良いわけです。

そこで、 [ ] を文字列として認識してくれるように「\」を使います。

\[*\] とすることで、 [ ] はワイルドカードの記号ではなく文字列として認識されるようになります。このワイルドカードの意味は「 [(任意の文字列)] を置換」=「 [ から ] までを丸ごと置換」です。

上の画像でいうなら、
[2018/08/25 21:45:08 (UTC+09:00:00) ID:****** > GUILD    ] まで全てが置換対象です。

めちゃくちゃ手間に思えることでも案外簡単にできたりするので、「ブログ書くのにチャットログからいろいろ拾いたいんだけどめんどくさいな~」って時に使えるかも?しれません。