2

私は、perl でのファイル名パターン マッチングの非常に具体的なものを見つけようとしていました。

次の一連のファイルがあります。

AAA.test.xml and AAA.xml.

そして、完全なファイル パスを関数に渡します。

ファイル名を比較したいのですが、ファイル名が AAA.xml の場合は別のディレクトリにコピーしたいと思います。

これは私の質問です: ファイル名を比較して、名前に 2 つのドットが含まれているかどうかを確認する方法はありますか?

編集: REGEX の使用も問題ありません。perl での方法がわかりません。

4

1 に答える 1

2

ファイル名がある場合 (あなたのように聞こえます)、2 つのリテラル ピリオドをチェックする単純な正規表現を使用できます。例えば:

if ($name =~ /\..*\./) { do stuff }

文字「。」に注意することが重要です。正規表現では特別です。文字列「.」リテラル "." を意味します。バックスラッシュのない文字シーケンス「.」は、任意の文字を意味します。また、「*」は、前のものが 0 回以上一致する必要があることを意味します。

したがって、上記の正規表現は「リテラル '.' を検索する」ことを意味します。文字、任意の数、別のリテラル '.'".

于 2013-07-26T08:58:43.370 に答える