有効なファイル名を見つけるための正規表現
-
06-07-2019 - |
質問
文字列がファイル名(名前はDOT ext)かどうかを確認したい。
ファイル名に /を含めることはできませんか? *:; {} \
preg_match()で使用する正規表現を提案してもらえますか?
解決
ここに行きます:
"[^/?*:;{}\\]+\\.[^/?*:;{}\\]+"
"これらのいずれでもない1つ以上の文字、ドット、これらの文字ではない文字を追加します。"
(ドットが本当に必要であると確信している限り-そうでない場合は、単に" [^ /?* :; {} \\] +"
他のヒント
$a = preg_match('=^[^/?*;:{}\\\\]+\.[^/?*;:{}\\\\]+$=', 'file.abc');
^ ... $ - begin and end of the string
[^ ... ] - matches NOT the listed chars.
正規表現は次のようになります(3文字の拡張子の場合):
^[^/?*:;{}\\]+\.[^/?*:;{}\\]{3}$
PHPではバックスラッシュをエスケープする必要があり、 preg_match()
ではスラッシュをエスケープする必要があるため、
$pattern = "/^[^\\/?*:;{}\\\\]+\\.[^\\/?*:;{}\\\\]{3}$/";
" hosts"
や" .htaccess"
などのファイル名に一致させるには、次のようにわずかに変更した式を使用します。
^[^/?*:;{}\\]*\.?[^/?*:;{}\\]+$
GolangプログラムでUnixファイル名のチェックに使用する正規表現の下:
reg := regexp.MustCompile("^/[[:print:]]+(/[[:print:]]+)*<*>quot;)
所属していません StackOverflow