ラベル 置換 の投稿を表示しています。 すべての投稿を表示
ラベル 置換 の投稿を表示しています。 すべての投稿を表示

2010年1月27日水曜日

句読点の処理

続いて句読点の処理。
こちらは色コードの削除に比べるとシンプルで

正規表現の検索パターンに
[は|に|を|が|の|、|。]
おまけで、助詞っぽい文字も足してあります。
本当はワード検索と組み合わせた方が無駄な空白を増やさなくてすむのですが、面倒なのでパス。

置換パターンには
\0_
アンダースコアの位置に半角スペースです。
単に半角スペースが表示出来ないので、便宜的にアンダースコア付けただけです。

ここまでやると、かなりいい具合に表示出来るようになります。

正規表現って何?って方は、一つ前のエントリから読み返して下さい。

日本語Mod作者様はSteam版でないので、日本語表示出来ないとのことで、
なんだか申し訳なくなりつつ楽しませていただいております。

本当はYahooの形態素解析APIを使ったりすれば助詞だけを抜き出したりするのも可能なんですけど。
このあたりは、PHPでWebAPIを骨までしゃぶるで扱っているので、よかったらどうぞ。

なお、クエスト達成時などにアプリケーションエラーが発生する場合は、
一時的にglobals.datを消すだけで進めます。
このファイルに関しては、日本語Modの作者様も心配していたようなので、
なにかあるのかもしれませんが、自分には分かりません。

→根本的な解決策ではありませんが、globals.datの[TITLES]ブロックを英語版のオリジナルに戻せばアプリケーションエラーで落ちることはなくなることが分かりました。

正規表現で色コードを削除

有志の方が日本語Modを公開してくれたおかげで、Torchlightが日本語表示できるようになりました。
ただ、現状のバージョン1.14では、日本語が混じると色コードが誤認識されて、正しく表示されないことが多々あります。

なので、とりあえずは、色コード指定を削除してしまうのが手っ取り早い解決策。

ここでは、正規表現を使った文字列置換で色コードを削除する方法を紹介します。

まずは、正規表現に対応した文字列置換ソフトを用意します。
egrepでもDevasでもお好きなのをどうぞ。
ここでは、Devasを例にとります。

まず、左下のコンボボックスから「正規表現検索」を選択。
検索文字列に以下のパターン
\|c.{8}(.*?)\|u
を入力。
色コードは|cxxxxxx00文字列|uで指定されているので、中の文字列を取り出すにはこういったパターンになります。
何でこうなるのかを知りたい人はググってください。
対象ファイル/フォルダは自分の環境に合わせて入力。
対象ファイルの条件は
*.dat *.layout
を入力。
サブフォルダも検索をチェックしてから、
右下の検索ボタンを押す。
すると、検索結果一覧が出てくるので、
置換文字列に
\1
を入力してから、結果のプレビューボタンを押すと、置換結果が表示されます。
ちなみに、\1というのも正規表現のパターンでして、これは検索時に使用した()内の文字列を指すパターンです。
また、ここでは使いませんが、$0には、マッチした文字列全体が入っています。
問題なければ右下の置換ボタンを押せば一気に色コードを削除できます。

あとは、ワードの後ろに半角スペースを挿入すればかなり見やすくなります。
色がなくなるので、ちょっと素っ気無いですけど。