我尝试创建一个正则表达式来验证我使用GridFS编写的文件系统API的路径名。
我目前的RegEx ^[A-Za-z0-9\-\[\]()$#_./]*$
可以满足以下条件:
a-z
,A-Z
,0-9
,-[]()$#_./
然而,它不符合这些额外标准:
/
/
。问题:
答案 0 :(得分:3)
不确定路径标准,但关于RegExp,非常简单:
^\/(?!\/)([A-Za-z0-9\-\[\]()$#_.]|(\/(?!\/)))*$
\/(?!\/)
表示斜杠/
后面没有斜杠(?!\/)
。我使用它两次,一次作为第一个字符,再次作为第一个字符后的可能匹配之一。
答案 1 :(得分:1)
以下是您如何满足您的要求。要强制执行第一个字符/
,只需在^
之后添加。
^\/[A-Za-z0-9\-\[\]()$#_./]*$
要不允许连续斜杠,您应该从字符集中删除它,并将该集视为路径的一部分。部分将用斜线分隔。所以最终的正则表达式是:
^\/([A-Za-z0-9\-\[\]()$#_.]\/?)*$