【问题标题】:Is there a way to replace string in URL that precedes a known string?有没有办法替换已知字符串之前的 URL 中的字符串?
【发布时间】:2020-07-29 12:36:24
【问题描述】:

我正在尝试找到一种方法来替换 URL 中后跟已知元素的任意数字。

例如,在原始中找到“20200116141908/smaller_square”,其中“/smaller-square”总是跟随在任意数字之后是任意的,并将两者都替换为“/large”,结果如下:

原创

https://www.artforhire.com/p/assets/images/images/023/441/726/20200116141908/smaller_square/bear.jpg
                                                             ^------------REPLACE---------^

预期结果

https://www.artforhire.com/p/assets/images/images/023/441/726/large/bear.jpg

【问题讨论】:

  • string result = url.Replace(stringToReplace, "/large");?
  • 是的,有办法。
  • @DaggeJ 标准String.Replace 的问题在于数字是任意的。

标签: c# string url replace


【解决方案1】:

使用正则表达式:

string newUrl = Regex.Replace(originalUrl, @"\d+\/smaller_square", "large");

\d+ 匹配一位或多位数字。

如果总是有 14 位数字,那么您可以改用 \d{14}

【讨论】:

  • 您在发帖前是否对此进行了测试?你的输出是https://www.artforhire.com/p/assets/images/images/023/441/726/20200116141908/smaller_square/bear.jpg
  • 这太棒了 - 我在 REGEX 上很糟糕,但这很有效,但你必须将“smaller-square”更改为“smaller_square”:) 非常感谢!!
  • @ChrisL - 不,它没有。之后还是有问题。
  • 还是错了 - https://www.artforhire.com/p/assets/images/images/023/441/726//large/bear.jpg.
  • @Enigmativity 是的,你是对的,斜线现在已经排序了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多