regex - 正则表达式中的逻辑

标签 regex logic

我正在整理一些正则表达式来处理将传入链接从旧站点重定向到新站点上的等效页面。我希望我可以在正则表达式中处理以下情况,这样我就不必在后端执行此操作:

传入链接: /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/

相关文章:

c - 如何检查几个指针中的任何一个是否为空?

regex - Bash:使用正则表达式提取范围(也许是 sed?)

java - 正则表达式在冒号上分割字符串

r - 是否可以在 grepl() 中使用 AND 运算符?

c# - 有效地用代码表达2x2逻辑网格

perl - 意外的逻辑错误

java - 原地旋转 NxN 矩阵 90 度时出现逻辑错误

.net - 跨换行符匹配正则表达式?

带有日语注音假名的 MySQL 正则表达式

正则表达式 - 选择字符串中的模式