我想使用正则表达式验证 unix 文件路径。
但这仍然允许使用双斜杠,例如this//is//allowed
如何确保不允许使用双斜杠?
编辑 1
我想允许 _、-、字母数字值,只要它们形成有效的 unix 目录路径。只是想确保这//
是被禁止的。谢谢
我想使用正则表达式验证 unix 文件路径。
但这仍然允许使用双斜杠,例如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}/