【ワイルドカード】括弧の閉じ忘れチェック

括弧には種類があり、全角半角によっても違いますし、使われ方もさまざまなので、前提条件を決めてチェック方法を考えないといけません。例えば丸括弧ですと、1)やA)というような使い方がされるため、「括弧を開かないで閉じている」というミスのチェックは難しそうです。ただ、日本語の「」や『』などは、そういう使い方がされないと予測されますから、チェックできそうですね。

ここではタイトルにある通り、前提条件として「括弧を開いたのに閉じ忘れたもの」を検出するためのワイルドカードを考えてみましょう。

まず、検索方法を考える上で、もうひとつ前提条件を付けます。それは、括弧ペアは必ずパラグラフの中で閉じているという条件です。私が翻訳で見ている文書を思い返しても、括弧ペアが文をまたぐのを見たことがありません。つまり、1文内にある括弧は必ずその1文の中で開いて閉じるということになります。言い換えれば、括弧を開いて閉じ忘れた状態とは、閉じる括弧が文末になっても現れない状態のことをいいます。

文末を知る上で使えそうなのは、英文であればピリオド、日本文であれば句点などでしょう。ただ、調べる種類が増えそうですので、検索文を簡略化するために少々乱暴ですが、改行コード ^13 を使うことにします。

[\(\[(「『【][!\)\])」』】]@^13

最初の [(](「『【] は括弧を開いたところを検索。続く [!)])」』】]@ で開いた括弧に続いて、閉じ括弧以外の文字列の連続を検索し、括弧が閉じないまま改行コード ^13 が見つかれば、検索式にヒットします。

これで対応できる括弧ペアは、() [] 「」『』【】です。他の括弧ペアもチェックしたいときは、この検索式に盛り込めば利用できます。

 ※ この記述方法の制限として、括弧の入れ子は検出できません。

 

広告

【ワイルドカード】【英文】「.」「,」のダブルクォーテーション内への入れ忘れチェック

文末のピリオドやカンマをダブルクォーテーションの前に置くか後ろに置くかは、[米][英]での違いとかマニュアルでの指示などで違いがあります。手元にある The Chicago Manual of Style (第16版)の 6.9 Periods and commas in relation to closing quotation marks. には以下のように書かれています。

Periods and commas precede closing quotation marks, whether double or single.

今回紹介するワイルドカードは、この Chicago Manual に則ったスタイルかどうかをチェックできるものになります。考え方として、ピリオド(.)もしくはカンマ(,)がダブルクォーテーション(“)の後についているものを、単純に検索するワイルドカードを考えます。

まず、ピリオドもしくは(or)カンマのいずれかをヒットさせたいときは、角括弧で囲みます。(or の時は角括弧の中に並べちゃえばOKです。)
[.,] と記述することで、. か , が検索でヒットします。次に、これらがダブルクォーテーションの後にある場合をヒットさせたいので、以下のような記述になります。

"[.,]

とりあえず、この記述で検索にヒットした箇所をチェックすれば、スタイルミスが見つかることになります。

では、強制的にピリオドもしくはカンマを、ダブルクォーテーションの前に移動してしまうワイルドカードを考えてみましょう。上の[.,]の記述では、ピリオドかカンマがヒットするので、ヒットしたものをそのまま利用することを考えないといけません。したがって、この記述を丸括弧で囲み、([.,]) と記述することで \1へ代入して再利用できるようにします。

検索する文字列

"([.,])

置換後の文字列

\1"

上記のような記述で、ダブルクォーテーションの後にあるピリオドとカンマが、ダブルクォーテーションの前に移動します。

実行する場合は、必ず、置換後の文字列に蛍光ペンをつけるようにして、必要な箇所のみが置換されていることを確認しましょう。(「検索と置換」窓で、「置換→書式→蛍光ペン」です)

 

ファイルリスト一覧作成 (ThisFolder2TextList)

コーディネータをやっていると、フォルダー内のファイル群をテキストリストにしたい場面がときどきあります。ここで紹介する ThisFolder2TextList を使用する前は、コマンドプロンプトを開いて、リスト化したいフォルダーまで移動した後、以下の文字列を入力してファイルリストを作成していました。

Dir /B > List.txt

ただし、下層フォルダーまではリストにしてくれないのです。あまり頻繁にあることではないのですが、下層フォルダーも含めてファイルリストを作りたいことがあるため、AutoHotKey でスクリプトを書いてEXE形式に変換したものを利用しています。

以下のリンクを開くと、WildLight共有フォルダーが開きますので、そこから「ThisFolder2TextList001b.zip」をダウンロードしてご利用ください。詳細は同梱されているテキストファイルをご参照ください。

https://app.box.com/v/WildLight

 

【ワイルドカード】全角丸括弧の一括半角置換(半角丸括弧の一括全角置換を含む)

英文にせよ和文にせよ、丸括弧に全角や半角が混在し、揃っていない訳文を見掛けることがあります。以下の前提のもとに、強制的に丸括弧を半角、もしくは全角に揃えるワイルドカードを記述してみたいと思います。

【前提】

  • 半角にせよ全角にせよ、丸括弧はちゃんと対になっていること。
  • その組合せは、半角全角()、全角半角()、全角全角()、半角半角()の4通りとする。

この前提に従い、これらの4通りの組合せをヒットさせるためには、以下のように記述します。

検索する文字列

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

次に「置換後の文字列」の記述の仕方ですが、すべて全角の丸括弧へ揃える場合は、以下のように記述します。

置換後の文字列:(丸括弧は全角です。)

(\1)

この記述から分かるとおり、正しい全角の丸括弧の組合せであっても、強制的に置換してしまうということです。ワイルドカードの記述を考えるとき、正しいものを回避しようと考えてしまい、1文で記述できずに悩んでしまうことが多いですが、正しいものも置換してしまうというアプローチを取れば、1文で表現できることが多いです。

では、次にすべて半角の丸括弧へ揃えて置換するための「置換後の文字列」を記述をします。

置換後の文字列:(丸括弧は半角です)

(\1)

 

【ワイルドカード】【英文】単語間のスペースが2つ以上あるものをチェック

英訳文で、単語の間にスペースが2つ以上入っているものがときどき見られます。これをチェックするためのワイルドカードの記述方法を考えてみましょう。

一番簡単なのは以下の記述かもしれません。スペースが2つ以上あれば、すべて蛍光ペンを付けてしまえという発想です。

[ ]{2,}

文末のピリオドの後はスペース2つというルールの場合だと、それもヒットすることになって、少し都合が悪いですね。では、スペースの前がピリオドでないときにヒットするようにしてみましょう。

[!.][ ]{2,}

この場合、気をつけなくてはならないのは No. とか Dr. や Mr. などの後のスペースはチェックされないということです。チェックの方法を考えるときは、どこまでチェックするかを冷静に考えて判断するようにします。

では、この検索方法を使って、2スペース以上あったときは、強制的に1スペースになるように置換してみましょう。

検索する文字列

([!.])([ ]){2,}

置換後の文字列

\1 \2

間は半角スペース1つです。意図的に2スペース以上入力されているところも置換されてしまいますから、注意しましょう。

【ワイルドカード】数字列から任意の桁数を抜いて、別形式の番号体系に置換する。

決められた番号体系に基づいて付与された管理番号の一部を、他の番号体系へ転記して、新たな番号を作らなくてはならない・・・というようなことが、事務処理の中ではよく発生します。

例として、以下のようなものを想定してみましょう。

例)Aから始まる9桁の番号があり、うしろ8桁の数字部を抜き出し、抜き出した数字部の後にUS01を付与して、新しい番号を作成して置き換える。

A12345678  →  12345678US01

ワードの置換機能を使い、「ワイルドカードを使用する」をONにして、以下の記述を行います。

検索する文字列

<A([0-9]{8})

置換後の文字列

\1US01

検索する文字列は、Aから始まり、続いて8桁の数字を持ったものを検索するように記述してあり、その8桁の数字は()で閉じることで\1へ代入されます。置換後の文字列の\1にその8桁の数字が展開され、その後にUS01が付与されることになります。

【ワイルドカード】【英文】文末(ピリオド後)の2スペースチェック

スタイルガイドによっては、英訳文の文と文の間に2スペースを要求するものがあります。そのルールが守られているかをチェックします。

ワードの検索機能を使い、「ワイルドカードを使用する」をONにして、以下の記述を行います。

検索する文字列

[! ]>.[ ][! ]

ピリオドの後に1スペースしかないものがヒットします。(3スペース以上のものはヒットしない。3スペース以上の場合は [! ]>.[ ]{3,}[! ] となります。)

では、指定された2スペースではないものを、置換により強制的に2スペースにしてしまう方法を考えてみましょう。

上記の記述では1スペースのものしかヒットしません。3スペース以上のものはヒットしないことになります。それぞれを記述しようとすると2文になってしまいますので、1回の置換では処理できなくなってしまいますね。ならば、正しい2スペースのものも含め、1スペース以上あるものを検索でヒットさせ、それを変換するというアプローチを取れば、1回の置換で処理ができます。

検索する文字列

([! ]>.)[ ]{1,}([! ])

置換後の文字列 (\1と\2の間は半角スペース2個です)

\1  \2

これですべての文の間は2スペースに置き換わります。ただし、No. 1 とか Fig. 2 などのピリオドの後ろも2スペースになりますから、注意が必要です。

それを回避する策として以下の記述が考えられますが、行頭が数字で始まる文はすべて、直前のスペースは修正されませんから注意してください。

検索する文字列

([! ]>.)[ ]{1,}([!0-9 ])

【ワイルドカード】【英文】改行コード前の余分な半角スペースチェック

英訳文の文末に余計なスペースが入っているケースを見掛けます。
それを検索して蛍光ペンをつける方法を以下に書きます。

ワードの検索機能を使い、「ワイルドカードを使用する」をONにして、以下の記述を行います。
この記述の意味は、改行コード^13の前にある連続する半角スペースを検索しています。

検索する文字列

[ ]{1,}^13

「検索された項目の強調表示」を選択すると、該当箇所に蛍光ペンが付きます。

次に、この余分な半角スペースを除去するための記述を書きます。

検索する文字列(上と同じです)

[ ]{1,}^13

置換後の文字列

^p

検索でヒットした余分な半角スペースと改行コードを、1つの改行コードで置き換えることで、余分は半角スペースを消してしまいます。

【ワイルドカード】【英文】全角文字の混入チェック

英訳物に混入した全角文字がクレームに繋がることが良くあります。そこで、2バイト文字を検索して蛍光ペンを付けるワイルドカードの記述を以下に示します。

ワードの検索機能を使い、「ワイルドカードを使用する」をONにして、以下の記述を行います。

検索する文字列:

[!\!-~ ]

「検索された項目の強調表示」を選択すると、該当箇所に蛍光ペンが付きます。

この記述は、半角英数字(記号を含む)以外を検索しています。ワード上で使用される記号やギリシア文字なども検索にヒットしますので注意してください。

チェックに使用する目的から考えると、疑わしいものをすべて検出して人間が是非を判断する方が良いため、こういうアプローチを取っています。

 

【ワイルドカード】【日本文】全角漢数字チェック

漢数字の取扱いには、いろいろとルールがあるようですので、ここでは、全角漢数字を検索して蛍光ペンをつける記述を紹介します。〇~九千九百九十九万九千九百九十九までヒットするはずです。

ワードの検索機能を使い、「ワイルドカードを使用する」をONにして、以下の記述を行います。

検索する文字列

[〇一二三四五六七八九十百千万]{1,}

「検索された項目の強調表示」を選択すると、該当箇所に蛍光ペンが付きます。