目录路径的正则表达式

时间:2018-03-28 05:17:09

标签: regex

我需要正则表达式才能检查字符串是否是目录路径。 它应该匹配

../../a/b/c

但不是

../a/../b/c

2 个答案:

答案 0 :(得分:0)

如果您希望正则表达式与../../a/b/c完全匹配,则正则表达式为

\.\.\/\.\.\/a/b/c

在\。(期间)前面使用\因为句号是元字符,删除它的特殊属性并使用它作为常规句点\使用。 如果要将a,b或c替换为任何字符,请使用字符类[a-z],或者使用\w。在\ w的情况下,它匹配字母数字字符(A-Z a-z和0-9)。

由于我不知道你想要的目的,我可以给出正则表达式。

答案 1 :(得分:0)

如果我根据输入明确了解您的问题,那么您可以尝试:

^(?:\.{2})?(?:\/\.{2})*(\/[a-zA-Z0-9]+)+$

Regex101Demo

const regex = /^(?:\.{2})?(?:\/\.{2})*(\/[a-zA-Z0-9]+)+$/;

console.log(`../../a/b/c  =`+regex.test(`../../a/b/c`));
console.log(`../a/../b/c =`+regex.test(`../a/../b/c`));
console.log(`/a/b/../c =`+regex.test(`/a/b/../c`));
console.log(`/bbb/bcc= `+regex.test(`/bbb/bcc`));
console.log(`../b/b =`+regex.test(`../b/b`));
console.log(`../b/b =`+regex.test(`../b/b`));