要匹配没有'../'
的相对路径的正则表达式,可以使用以下正则表达式:
^(?!.*\/\.\.).*$
^
表示字符串的开始。(?!.*\/\.\.)
是一个负向前瞻断言,表示后面的内容不能包含'../'
。.*
表示任意字符(除换行符外)出现零次或多次。\/
表示匹配斜杠'/'
。\.
表示匹配点号'.'
。.
表示匹配任意字符(除换行符外)。.*
表示任意字符(除换行符外)出现零次或多次。$
表示字符串的结束。假设我们有以下路径列表:
./dir1/file1.txt
./dir2/../dir3/file2.txt
./dir4/file3.txt
使用上述正则表达式进行匹配,结果如下:
./dir1/file1.txt
匹配成功。./dir2/../dir3/file2.txt
匹配失败。./dir4/file3.txt
匹配成功。这个正则表达式可以用于验证用户输入的路径是否包含'../'
,以防止路径遍历攻击(Path Traversal Attack),确保路径的安全性。
希望这个答案对你有帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云