【ワイルドカード】特定の見出し行の後に空白行が入っているかをチェックする

スタイルガイドに「特定の見出し行の後に、必ず空白行を入れること」となっているとします。このルールが守られていないケースを検索するワイルドカードの記述例を以下に示します。

例えば、英文で「TITLE OF THE INVENTION」の後に空白行が入っていないものを検索するには、「検索する文字列」で以下のように記述します。

TITLE OF THE INVENTION^13[!^13]

解説)
見出し行の後に空白行がある状態とは、見出し文字列の後ろに改行が2つ連続していることになります。つまり、2つ目が改行でないものを検索すれば良いことになります。

改行を検索する際は ^13 を使いますので、ここでは分かり易くするために、改行を ^13 で表します。

(正)
TITLE OF THE INVENTION^13
^13
A quick brown fox jumps over the lazy dog. The fox has wings …

(誤)
TITLE OF THE INVENTION^13
A quick brown fox jumps over the lazy dog. The fox has wings…

2つ目が改行ではない、即ち2つ目に ^13 がないものを検索すれば良いことになります。「改行でない」は「^13ではない」と記述すること(^13を否定してやること)で表すことができますので、否定の際に使用する「!」を先頭に入れて、 [!^13] とすればよいわけです。

ここでは角括弧[ ]は必須です。^13!^13 では正しく検索されません。

言語が変わっても以下のように記述すれば検索できます。

見出し^13[!^13]

何かの文字列の後に空白行があることを確認したいときは、この記述を覚えておくと便利です。

では、特定の見出しの後に空白行がないときに、強制的に空白行を入れる方法を次に説明します。ここでは例として「TITLE OF THE INVENTION」の後に空白行が入っていないものを検索して、強制的に空白行を入れます。

検索する文字列

(TITLE OF THE INVENTION)^13([!^13])

上述との違いは、TITLE OF THE INVENTION[!^13] をそれぞれ括弧()で閉じたことです。()で囲うことにより、その中の情報がそれぞれ\1\2へ代入され、次の「置換後の文字列」の中で使用できるようになります。

置換後の文字列

\1^p^p\2

ここの\1には、先のTITLE OF THE INVENTIONが入っています。\2には、改行ではない何かが入っています。そして、それらの間に改行^pを2回入れることで、以下のような形になります。

TITLE OF THE INVENTION(改行)
(改行)
(改行でない何か)