こちらの記事も、くにしろさんのブログ「Memo 9246 :: 翻訳備忘録・雑記帳」の記事のご紹介です。
とてもためになる情報が書かれていますので、是非、以下のリンクからご閲覧ください。
こちらの記事も、くにしろさんのブログ「Memo 9246 :: 翻訳備忘録・雑記帳」の記事のご紹介です。
とてもためになる情報が書かれていますので、是非、以下のリンクからご閲覧ください。
こちらの記事も、くにしろさんのブログ「Memo 9246 :: 翻訳備忘録・雑記帳」の記事のご紹介です。
とてもためになる情報が書かれていますので、是非、以下のリンクからご閲覧ください。
大阪ほんま会でのWildLightセミナーの後、くにしろさんが御自身のブログ「Memo 9246 :: 翻訳備忘録・雑記帳」で表題のような記事を書かれていたのですが、こちらでのご紹介が遅くなりました。
WildLightを積極的に使って、ミスを検出しようといろいろと試されていて、とても勉強になります。是非、以下のリンクからご閲覧ください。
先日行ったWildLight中級セミナーで、受講していただいた方から以下のようなお題をいただきました。もちろん、セミナーではこれを題材にワイルドカードとWildLight特殊コマンドの実習を行いました。うまく解決できたお題ですので、当ブログでシェアいたします。
4桁以上の数字を自動的にカンマで位取りしたい
まず考えたいのは、対象となる数字の桁数です。4桁以上は確かですが、最大何桁までを対象と考えるかです。
X,XXX 〜 XXX,XXX,XXX,XXX
まぁ「兆」くらいをカバーしておけば実用的でしょうか?(笑) すると対応しなくてはならない組合せは以下の3通りということになります。
XXX,XXX
XXX,XXX,XXX
XXX,XXX,XXX,XXX
ワイルドカードで実現する上で、数字の桁数によって処理を変えるというのは、記述が難しそうですので、まずは、末尾三桁(下の例だと012)とそれ以前(123456789)を分けてヒットさせる方法を考えました。
123456789012
[0-9]@[0-9]{3}>
このワイルドカードの記述により、末尾三桁を[0-9]{3}> でヒットさせ、それ以前を [0-9]@ でヒットさせられます。それぞれを置換時に利用するために ( ) で括り、そして、それらの間に位取りのカンマ「,」を挿入するために、置換語に「¥1,¥2」と記述すれば良いことになります。WildLight辞書へは以下のように記述します。(※(TAB)は実際にタブキーを押して入力してください)
WILDCARD:ON ([0-9]@)([0-9]{3})>(TAB)¥1,¥2
この辞書を実行すると、4桁以上の数字は、以下のようになるはずです。
123,456
123456,789
123456789,012
さて、さらに上位の桁の位取りはどうしたらいいでしょう?
そうです。このワイルドカードを繰り返して実行すればいいのです。
ただし、ここで注意しなければならないのは、WildLightに以下の基本機能があることです。
上記のワイルドカードを実行したことにより、数字にはすべて蛍光ペンがついている状態になっています。つまり、そのまま続けて実行したのでは、それらの数字は検索対象から除外されてしまい、位取りがされません。そこで利用するのが、検索時の蛍光ペンの有無を無視するコマンド「IgnoreH」です。
IgnoreH:ON で、検索時に蛍光ペンの有無を無視します(すべてを検索対象として検索する)。ちなみに IgnoreH:OFF でデフォルト値に戻り、基本機能通り、蛍光ペン箇所は検索対象から除外されます。では、これを使って辞書を記述してみると以下の通りになります。
WILDCARD:ON ([0-9]@)([0-9]{3})>(TAB)¥1,¥2 IgnoreH:ON ([0-9]@)([0-9]{3})>(TAB)¥1,¥2 ([0-9]@)([0-9]{3})>(TAB)¥1,¥2
これで、兆までの数字に対して3桁位取りが自動で行われ、蛍光ペンがつきます。
この辞書は、ライブラリーに「WLDIC_変換_4桁以上の数値をカンマで自動的に位取り.txt」という名前で登録してありますので、ダウンロードしてご利用ください。
WildLightは、ワイルドカードの1文では表現しきれない処理も、辞書に記述を並べることで処理を可能にできるところが、大きな特長です。