先日の第4回ワードマクロ勉強会でのワイルドカード検索の演習で使った例です。
小文字で始まる文章を探すにはどうしたらいい?という問題。
これを考えるときには、上記の日本語をどうやってパターンに置き換えるか?がポイントですね。
要は、「小文字で始まる文章」の前後関係がどのようなパターンで示されるのか?ということを考えるんですね。
なので最初は、ワイルドカードの知識は全く不要。
「パターン」をできるだけ多く発想することが必要になります。
文章の先頭は以下のような特徴があります。
①段落の先頭で始まっている(→改行後に始まっている)
②ピリオドとスペース2つの後に始まっている(ダブルスペースの場合)
③タブ、スペース4つの後で始まっている
こんなふうに、パターンを探してみるわけです。
ご自身の文章をチェックする場合には、それ以外にもパターンを設定できるかもしれないですね。
●の後で文章が始まるところもあるかもしれないし、1.2.3.などの序数のあとで始まるかもしれないし。
そして、これらのパターンを発見できたら、このパターンをワイルドカードに書き換えます。
ここからがワイルドカード検索の知識が必要なところです。
<目次>
①段落の先頭で始まっている(→改行後に始まっている)
3種類あります。
ハードリターン(^13)、ソフトリターン(^l)、改ページ(^m)としておきましょう。
これらのうち一つがあって、その後に任意の小文字アルファベットが続くとしましょう。
[^13^l^m][a-z]{1,}
これで一つのパターンができました。
・・・・・・ 追記 16-07-26 ・・・・・・・・・・
段落先頭の場合、「段区切り」の直後ということも考えられます。「段区切り」は ^14 で特定できます。
以下のようにするとさらによくなると思います。
ちなみに、^lは^11、^mは^12と同じ意味です。^12で改ページのほかにセクション区切りも検索できます。
[^11^12^13^14][a-z]{1,}
・・・・・・・・・・・・・・・・・・・・・・・・・
②ピリオドの後に始まっている
ダブルスペースなので、以下の通りとしました。
.[ ]{2}[a-z]{1,}
・・・・・・ 追記 16-07-26 ・・・・・・・・・・
文末はピリオドだけでなく、!や?も含まれます。
なので、以下のようにしてみました。!も?もワイルドカード文字として機能を持っていますので、記号そのものを検索するという意味で、\記号を直前につけます。
[.\!\?][ ]{2}[a-z]{1,}
・・・・・・・・・・・・・・・・・・・・・・・・・
③タブ、スペース4つの後で始まっている
これも、想定しただけで、実際にどうなっているかはわかりません。
対象となる文章の癖をしらべて設定します。
2パターンつくりました。
[^t][a-z]{1,} [ ]{4}[a-z]{1,}
こんな感じ。