我想使用正则表达式验证unix文件路径。
但是这仍然允许像this//is//allowed
如何确保不允许使用双斜杠?
编辑1
我想允许_, - ,字母数字值,只要它们形成有效的unix目录路径。只是想确保//
被禁止。感谢
答案 0 :(得分:4)
您应该将斜杠移到字符类之外,并使其成为可选项。然后在字符类和斜杠组合上添加量词,重复它们的组合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
答案 1 :(得分:0)
指定目标字符及其重复次数
/\/{2}/