1

C# .Net MVC 3 Web アプリがあります。Windows フォルダー名の規則に準拠する RegEx データ注釈でプロパティを装飾する必要があります。無効な文字は次のとおりです: \、/、*、:、? 、「、<、>、|

私は偉大な RegEx 開発者ではなく、いくつかの RegEx を試しましたが、アプリで許可する必要がある文字 - がすべて許可されていませんでした。

私が試してみました:

^[a-zA-Z0-9]+(([_][a-zA-Z0-9])?[a-zA-Z0-9]*)*$

^[a-zA-Z''-'\s]{1,40}$

^( [a-zA-Z] )( ( [a-zA-Z_\-\s0-9\.\)\(] )( [^\\!@#$%^&/:*?<>""|]* ) )*$

有効:

MyFilemane-!@#$%^&

無効:

MyFilename|
MyFileName\
4

2 に答える 2

4

以下を使用して、正規表現を使用せずにこれを行うことができます。

ドキュメントを参照してください。これらのメソッドを実装する完全な例が示されています。

パスまたはファイル名を確認するには:

var invalidPath = Path.GetInvalidPathChars(path)
var invalidFN   = Path.GetInvalidFileNameChars(file)

これを行うためにもStringBuilder クラスを実装します。

正規表現を使用してこれを行う場合は、これでうまくいくはずです。

^[a-zA-Z]+?[^\\\/:*?"<>|\n\r]+$
于 2013-09-19T16:13:13.527 に答える