正規表現を使用して UNIX ファイル パスを検証したい。
私は持っている\A[0-9a-zA-Z\_\-\/]+\z
しかし、これはまだ次のような二重スラッシュを許可しますthis//is//allowed
二重スラッシュが許可されていないことを確認するにはどうすればよいですか?
編集 1
有効な UNIX ディレクトリ パスを形成する限り、_、-、英数字の値を許可します。//
それが禁止されていることを確認したいだけです。ありがとう
正規表現を使用して UNIX ファイル パスを検証したい。
私は持っている\A[0-9a-zA-Z\_\-\/]+\z
しかし、これはまだ次のような二重スラッシュを許可しますthis//is//allowed
二重スラッシュが許可されていないことを確認するにはどうすればよいですか?
編集 1
有効な UNIX ディレクトリ パスを形成する限り、_、-、英数字の値を許可します。//
それが禁止されていることを確認したいだけです。ありがとう
スラッシュを文字クラスの外に移動し、オプションにする必要があります。次に、文字クラスに量指定子を追加し、スラッシュを組み合わせて、それらの組み合わせを 1 回以上繰り返します。
\A(?:[0-9a-zA-Z_-]+\/?)+\z
http://rubular.com/r/77kvWAoI4eを参照してください。
(?:
[0-9a-zA-Z_-]+ # Original character class without `/`.
\/? # An optional slash (Because the string need not end with `/`
)+ # 1 or more repetition of their combination
_
また、正規表現でエスケープする必要はありません。また-
、文字クラスの最後に使用する場合。
最後に、文字クラスを - に減らすことができます[\w-]
。したがって、正規表現は次のように縮小できます。
\A(?:[\w-]+\/?)+\z
繰り返し回数とともに対象文字を指定する
/\/{2}/