正規表現を使用して文字列を分割するのではなく、SysDragon が提案するように Split 関数を使用するだけです。これを行わない理由はありません。元の文字列の 2 番目の部分を取得すると、この正規表現は唯一の一致として取得BMP
します。*.BMP;*.JPG;*.GIF
^\|\*\.(\w{1,4});
簡単に言えば、これは次のことを言います。
- ^ 文字列の先頭から開始
- \| パイプ文字を見つけます (これは正規表現の OR に相当するため、\ で区切ります)
- \*単一の * 文字を検索します (* は正規表現で「0 回以上の繰り返し」を意味するため、ここでも区切られています)
- \. 単一のピリオドを検索します (これは通常「任意の文字」を意味するため、区切られています)
- (\w{1,4}) 1 文字以上 4 文字以下の英数字を検索します。これはキャプチャ グループであるため、一致オブジェクトから取得できます。
- ; セミコロンを見つける
私は任意に 1 ~ 4 文字の英数字を選択しましたが、ニーズに合わせてこれを調整でき{3}
ます[A-Za-z]{1,3}
。
最初の拡張のみが必要だったので、これで目的は達成できますが、常にパターンを修正して、すべての拡張を一致コレクションとして提供することができます。実際、その正規表現はさらに単純です (しかし、 1 で十分なのにnの一致を返すのはなぜでしょうか?) そして、学習演習としてそれを活用します :-)