2023 © RegexOne
メール | Twitter
正規表現を使用すると、テキストにマッチするだけでなく、さらなる処理のために情報を抽出することもできます。これは、文字のグループを定義し、特別な括弧(と)メタ文字を使用してそれらをキャプチャすることによって行われます。括弧内の任意のサブパターンは、グループとしてキャプチャされます。実際には、これはあらゆる種類のデータから電話番号やメールアドレスなどの情報を抽出するために使用できます。
たとえば、クラウドにあるすべての画像ファイルを一覧表示するコマンドラインツールがあるとします。その場合、^(IMG\d+\.png)$のようなパターンを使用してファイル名全体をキャプチャして抽出できますが、拡張子を除いたファイル名だけをキャプチャしたい場合は、ピリオドの前にある部分だけをキャプチャするパターン^(IMG\d+)\.png$を使用できます。
それでは、以下のPDFファイルのファイル名(拡張子を除く)のみにマッチする正規表現を作成してみましょう。
| 課題 | テキスト | キャプチャグループ | |
| キャプチャ | file_record_transcript.pdf | file_record_transcript | ![]() |
| キャプチャ | file_07241999.pdf | file_07241999 | ![]() |
| スキップ | testfile_fake.pdf.tmp | ![]() |
| 解答 | "file"で始まり、ファイル拡張子が".pdf"である行だけをキャプチャしたいので、"file"の開始から拡張子までをキャプチャする単純なパターンを次のように記述できます。^(file.+)\.pdf$. |