正则表达式以匹配文件夹结构中的有效路径



如何编写正则表达式来匹配虚拟文件夹结构中的所有有效路径?

假设我有一个由如下字符串表示的虚拟文件夹结构:

foo/bar/baz

那么以下字符串应该匹配:

  • foo(可能还有foo/(
  • foo/bar(可能还有foo/bar/(
  • foo/bar/baz(可能还有foo/bar/baz/(

但这些字符串不应匹配:

  • foo/ba
  • foo/bar/b

您的匹配必须从开始匹配到斜杠或字符串结束。

这给出了以下正则表达式:

/^yourstring(/|$)/

其中"yourstring"可以是:

foo
foo/bar
foo/bar/baz
etc

但不是:

foo/b
foo/ba
etc

要测试的字符串始终是完整路径,如:

foo/bar/baz

您可以使用此^(w+/?)+$模式;w[a-zA-Z0-9_]相同

这是js 中的一个演示

function isValid(str){
return /^(w+/?)+$/.test(str)
}
console.log(isValid("foo"))
console.log(isValid("foo/"))
console.log(isValid("for/bar/baz"))
console.log(isValid("for/bar/baz/"))
//invalid filenames
console.log(isValid("for/bar//"))
console.log(isValid("rdxrc/+"))
console.log(isValid(";/lllj/ii/"))

相关内容

最新更新