これに関してStackOverflowですでにいくつかの質問をしましたが、私の場合は何も役に立ちませんでした。
-
ユーザーが、英数字、、、およびスペースのみを含むファイル名を提供するように制限したいと考えてい_
ます.
。
私は正規表現が苦手で、これまでのところこれを思いつきました^[a-zA-Z0-9.-_]$
。誰か助けてくれませんか?
これは正しい表現です:
string regex = @"^[\w\-. ]+$";
\w
と同等です[0-9a-zA-Z_]
。
ファイル名を検証するには、正規表現ではなく C# が提供する関数を使用することをお勧めします
if (filename.IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) != -1)
{
}
この正規表現を使用します^[a-zA-Z0-9._ -]+$
これは、エンジニアの回答に対するマイナーな変更です。
string regex = @"^[\w\- ]+[\w\-. ]*$"
これにより、無効なものがブロック".txt"
されます。
"..txt"
問題は、有効なブロックを行うことです
最も投票された回答でドットがエスケープされていなかったため、将来の参照のために @Engineer からコピーされました。
これは正しい表現です:
string regex = @"^[\w\-\. ]+$";