54

これに関してStackOverflowですでにいくつかの質問をしましたが、私の場合は何も役に立ちませんでした。

-ユーザーが、英数字、、、およびスペースのみを含むファイル名を提供するように制限したいと考えてい_ます.

私は正規表現が苦手で、これまでのところこれを思いつきました^[a-zA-Z0-9.-_]$。誰か助けてくれませんか?

4

10 に答える 10

76

これは正しい表現です:

string regex = @"^[\w\-. ]+$";

\wと同等です[0-9a-zA-Z_]

于 2012-08-03T11:06:25.287 に答える
33

ファイル名を検証するには、正規表現ではなく C# が提供する関数を使用することをお勧めします

if (filename.IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) != -1)
{
}
于 2012-08-03T10:52:46.123 に答える
2

この正規表現を使用します^[a-zA-Z0-9._ -]+$

于 2012-08-03T10:46:03.907 に答える
2

これは、エンジニアの回答に対するマイナーな変更です。

string regex = @"^[\w\- ]+[\w\-. ]*$"

これにより、無効なものがブロック".txt"されます。

"..txt"問題は、有効なブロックを行うことです

于 2012-11-08T15:36:35.793 に答える
-3

最も投票された回答でドットがエスケープされていなかったため、将来の参照のために @Engineer からコピーされました。

これは正しい表現です:

string regex = @"^[\w\-\. ]+$";
于 2016-02-03T15:22:32.497 に答える