繁体   English   中英

正则表达式匹配大多数字母数字路径

[英]Regex to match mostly alphanumeric paths

我尝试创建一个正则表达式来验证使用GridFS编写的文件系统API的路径名。

我当前的RegEx ^[A-Za-z0-9\\-\\[\\]()$#_./]*$可以满足以下条件:

  • 允许azAZ0-9-[]()$#_./

但是,它不满足以下附加条件:

  • 第一个字符必须为/
  • 连续不得出现多个/

问题:

  • 有人可以帮我修复我的RegEx吗?
  • 使用我的路径名称标准是否有任何问题? (我错过任何重要的事情吗?)

不确定路径标准,但是关于RegExp,非常简单:

^\/(?!\/)([A-Za-z0-9\-\[\]()$#_.]|(\/(?!\/)))*$

\\/(?!\\/)表示斜杠/而不是斜杠(?!\\/) 我使用了两次,一次是第一个字符,再一次是第一个字符之后的可能匹配项之一。

这是解决需求的方法。 要强制使用第一个字符/ ,只需在^之后添加该字符。

^\\/[A-Za-z0-9\\-\\[\\]()$#_./]*$

要不允许连续的斜杠,应将其从字符集中删除,并将其视为路径的一部分。 部分之间用斜杠分隔。 因此,最终的正则表达式为:

^\\/([A-Za-z0-9\\-\\[\\]()$#_.]\\/?)*$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM