私はこの正規表現を持っています:
^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)([a-zA-Z]|)(\:|)[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+$
これにより、単一のダッシュを含むファイル名は許可されません。しかし、ダブル ダッシュ (ファイル名/フォルダー内のどこでも) のみを許可したくありません。シングル ダッシュは問題ありません。
情報をありがとう。
私はこの正規表現を持っています:
^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)([a-zA-Z]|)(\:|)[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+$
これにより、単一のダッシュを含むファイル名は許可されません。しかし、ダブル ダッシュ (ファイル名/フォルダー内のどこでも) のみを許可したくありません。シングル ダッシュは問題ありません。
情報をありがとう。
最後のを、この文字クラスを許可する式に変更し[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+
ます。オプションで、ダッシュ、この文字クラスを何度でも繰り返すことができます。必要に応じて、オプションの先頭と末尾のダッシュも追加します。(説明するよりも簡単なので、ここに追加しました:-)
^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)([a-zA-Z]|)(\:|)-?[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+(-[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+)*-?$
ダッシュ以外の文字が少なくとも1つ必要です。単一のダッシュを許可する場合は、最初のオプションではないグループに代わりにそれを含めることができますが、その場合、後続のコンテキストは異なって見える必要があります。
キャプチャしないグループを使用しますが、使用している正規表現フレーバーがわからないため、それらを持っていない可能性があります。