0

私は正規表現が苦手ですが、拡張子が次のファイルの形式を理解できるものが必要です コンパイラがそれを取得した場合

私は試した

Regex ex = new regex(".*\\..*")

Regex ex = new regex(".*\\....");

合格する必要がある例:

 ex.IsMatch("test.zip");   

メモ@Aliceをありがとう。ファイルブラウザに表示されるコードを変更しました: -rwxr-x--- 1 root nto 1007 Jan 10 14:28 chat.sh

また

drwxr-x--- 1 root nto 1007 Jan 10 14:28 アカウント

また

lrwxrwxrwx 1 root nto 9 Jan 15 06:43 lib -> /base/lib

d は、行頭のディレクトリを定義するものです。そんなセリフを読んで恩返ししたい

bool Isdirectory;

文字列 fName;

4

5 に答える 5

1
[^\.]    //Not a period once
.*       //Anything 0..more times
\.       //Period
.{1,3}   //Anything, up to three times

すべて一緒に:

[^\.].*\..{1,3}

行/テキスト全体が一致する必要がある場合は、次のように入力します^$

^[^\.].*\..{1,3}$

拡張子のないファイルも有効なファイル名であることに注意してください。そのため、ある時点でピリオドの要件を緩和する必要があるかもしれません:).さらに、ピリオドは、ファイル名で無効な記号と一致するため、間違った質問をしている可能性があります。ここで質問します。*/

編集:フラグを追加したので、質問はより理にかなっています。新しいチェックを行うのはとても簡単です:

if( line.StartsWith( "d" ) )
    return true; //It's a directory.
于 2013-01-31T18:24:33.067 に答える
0

これがあなたが探しているものだと思います

^.*\.[^.]{3}$

特定の文字をn回一致させたい場合は、{}数量詞を使用できます

だから.{3}3文字に一致します

x{2}2xに一致します

x{1,5}1から5xに一致します

于 2013-01-31T18:20:46.463 に答える
0

これは、Windowsのファイル名に使用するファイル名の正規表現です

^[^/\\:*""<>|]+?\.\w{1,3}$

これらの記号^/\:*"<>|は、Windows のファイル名で許可されていない文字を表します。

ファイル名に複数のピリオドが必要ない場合は、次のピリオドを使用できます。

^[^/\\:*""<>|.]+?\.\w{1,3}$
于 2013-01-31T19:23:47.363 に答える
0
    string x = "drwx------+ 1 Administrators Domain Users        0 Nov 30  2011 VSWebCache";
    Match m = Regex.Match(x, @"^(?<dir>d)?.*?(?<name>\w+(?:\.\w{3})?)$");

    if(m.Success)
    {
        string name = m.Groups["name"].Value;
        bool isDir = m.Groups["dir"].Success;
    }

「name」は、ファイル名またはディレクトリ名を含む文字列になりました。リストがディレクトリの「d」で始まるかどうかに関係なく、「isDir」には bool が含まれるようになりました。

あなたの正規表現は次のとおりです。

^(?<dir>d)?.*?(?<name>\w+(?:\.\w{3})?)$

「dir」と「name」という名前の 2 つのグループを作成します。「d」で始まる場合、グループ「dir」には「d」が含まれます。グループ「name」には、ファイル名またはディレクトリ名が含まれます。「.」の場合は「filename」と「filename.ext」に一致するため、名前には多少の遊びがあります。名前に存在します。

これは次の場合にも機能します

string x = @"-rwx------+ 1 Administrators Domain Users    72080 Dec 16  2011 g2mdlhlpx.exe"; 
于 2013-02-01T02:13:50.470 に答える
-1

これを試して:

.+\.(.{1,3})+

.+ファイル名を検索し、ファイル名に少なくとも1文字が含まれていることを確認します。\.期間を探します。.{1,3}1〜3文字の長さの拡張子を探します。(.{1,3})+filename.tar.gzのような拡張子を持つファイル名を処理します。

したがって、正規表現はfilename.z、filename.gz、filename.zip、filename.tar.gzなどを検証します。

于 2013-01-31T18:19:44.790 に答える