レッスン9:空白だらけ

ログファイルやユーザー入力など、現実世界の入力データを扱う際には、空白文字に遭遇しない方が難しいでしょう。空白文字は情報のフォーマットに使用され、視覚的に読みやすく、スキャンしやすくしますが、たった1つのスペースが、最も単純な正規表現にも支障をきたす可能性があります。

正規表現で使用する最も一般的な空白文字は、スペース)、タブ\t)、改行\n)、そしてキャリッジリターン(\r)(Windows環境で有用)です。これらの特殊文字は、それぞれの空白文字に一致します。さらに、空白文字の特殊文字\sは、上記の特定の空白文字のいずれかに一致し、生の入力テキストを扱う際に非常に便利です。

以下の文字列では、各行の内容が、行のインデックスからいくつかの空白文字でインデントされています(数字は一致させるテキストの一部です)。数字と内容の間に空白文字を含む各行に一致するパターンを作成してみてください。空白文字は他の文字と同様に扱われ、星印やプラス記号などの特殊メタ文字も使用できることに注意してください。

演習9:空白文字の一致
課題 テキスト  
一致 1. abc To be completed
一致 2. abc To be completed
一致 3. abc To be completed
スキップ 4.abc To be completed
解答

リスト番号と「abc」の間にスペースがある行のみに一致する必要があります。\d\.\s+abc という式を使用すると、数字、実際のピリオド(エスケープする必要があります)、1つ以上の空白文字、そしてテキストに一致させることができます。

プラス記号の代わりにクリーネスターを使用した場合、実際にはスキップしたい4行目にも一致してしまいます。

上記の課題を解いて次の問題に進みますか、または解答をご覧ください。