我正在整理一些正则表达式来处理将传入链接从旧站点重定向到新站点上的等效页面。我希望我可以在正则表达式中处理以下情况,这样我就不必在后端执行此操作:
传入链接: /reservations/inn_details.asp?num=717
重定向链接: /reservations/property-detail.aspx?pid=00717
如您所见,原始查询字符串值 717 在重定向链接中需要为 00717。规则是这些 ID 在重定向的 URL 中都必须是五个字符长。
所以我的问题是:是否可以在正则表达式中计算出查询字符串值有多少个字符,然后向其添加足够多的前导 0 使其等于五个字符?
我可以做四个单独的正则表达式来涵盖值长为 1、2、3 或 4 位数字的情况,但如果一次性处理所有这些情况会更酷!
谢谢, B.
最佳答案
不幸的是,这不是您仅使用正则表达式就能处理的事情。在我看来,最简单的解决方法是更改 property-detail.aspx 以执行零填充。
我的意思是,只需将正则表达式重定向到“/reservations/property-detail.aspx?pid=717”,并让 aspx 文件在 pid 前添加必要的零,然后再获取数据。无论如何都必须有一些代码来清理该输入(或者至少我希望如此),因此它可以很容易地添加到该部分。
关于regex - 正则表达式中的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/752463/