これに関して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\-\. ]+$";