当前将Apache 2.4与SSI Legacy Parser On一起使用,并尝试使用Regex代码获取我想要的结果。
<!--#set var="test" value=$REQUEST_URI -->
<!--#echo var="test" -->
从上面的代码中得到的示例结果是:
/path1/path2/path3/filename.html
/path1/path2/path3/filename.html?id=2019
我想要得到的示例结果是:
/path1/path2/path3/
最后一个正斜杠之后的所有内容都将被删除,而不管路径数如何。
是否存在正则表达式代码或我可以用来执行此操作的东西?
答案 0 :(得分:1)
当然!在这里,我们可以简单地添加一个斜线边界,然后从开始到最后一个斜线之间滑动所有内容:
(.*)\/
表达式可以就此停止,可以使用$1
进行简单调用。但是,如果您愿意,我们还可以为其添加更多边界,例如开始和结束字符:
^(.*)\/.*$
如果这不是您想要的表达式,则可以在regex101.com中修改/更改表达式。
您还可以在jex.im中可视化您的表达式:
const regex = /^(.*)\/.*$/gm;
const str = `/path1/path2/path3/filename.html
/path1/path2/path3/filename.html?id=2019
/path1/path2/path3/path4/filename.html?id=2019
/path1/path2/path3/path4/path5/filename.html?id=2019
`;
const subst = `$1`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);