【问题标题】:How to change the number in the URL inside the for loop C#如何在for循环C#中更改URL中的数字
【发布时间】:2020-10-08 07:55:35
【问题描述】:

我需要帮助来更改 for 循环内 URL 中的数字。

我举个例子:

  • https://www.....com/page1
  • https://www.....com/page2
  • ...
  • https://www.....com/page7649

我想增加这个页码。据我所知,有必要将 url 转换为字符串。编辑此字符串后,需要将字符串转换回 url。
我是否有机会通过在 url 中分配一个整数来增加它?

另外,如果这个 url 以 https://www.***.com/page2a=+w4ytq 的形式给出,我们是否需要另一种方法来解决这个问题?

【问题讨论】:

  • 请与我们分享您的代码,这表明您是如何尝试解决这个问题的。

标签: c# string url


【解决方案1】:

您可以使用内插字符串:

int pageCount = 500;
for (int pageIndex = 0; pageIndex++; pageIndex < pageCount) {
    string url = $"https://www..com/page{pageIndex + 1}";
}

【讨论】:

    【解决方案2】:

    我假设增加字符串编号是简单的计数器。看看以下是否适合你

    public static void Main (string[] args) 
    {
       int pagenum = 0;
       string url = "https://www.Google.com/page"; //input URL as string for test
       Uri newURI = new Uri(url); // Converts string to URL for test
    
       string urltoString = newURI.ToString(); // Converts URL to string for changing text
       int maxpagenum = 10; // Maximum number of pages
       for (int i =0; i<=maxpagenum;i++)
       {
         pagenum = i;
         string newURL = urltoString+pagenum.ToString(); //Creates new string with page number
         Uri uri = new Uri(newURL); // Converts string to URL
         Console.WriteLine(uri); // Prints URL
       }
        
       Console.WriteLine("End");
    }
    

    【讨论】:

      【解决方案3】:

      从 url 中取出页码并将其附加到您的 for 循环中。

      using System;
                          
      public class Program
      {
          public static void Main()
          {
              string baseurl = "https://www.{}.com/page";
              uint maxpage = 7649; // Insert right number
              for (uint page = 0; page < maxpage; ++page) 
              {
                  string url = baseurl + page; // + "a=+w4ytq";
              }       
          }
      }
      

      如果你首先需要从一个完整的url中获取baseurl,使用正则表达式来检索第一个数字之前的字符串:

      using System.Text.RegularExpressions;
      (...)
      string baseurl = Regex.Match(fullurl, @"^[^0-9]*").Value;
      

      关于你的第二个问题:

      • 正则表达式仍然像魅力一样工作
      • 取消注释+ "a=+w4ytq";

      【讨论】:

      • "另外,如果这个 url 被指定为www.***.com/page2a=+w4ytq,我们是否需要另一种方法来解决这个问题?"你能更准确地定义这个问题吗? a=+w4yt应该总是加在页码后面吗?
      • 是的,我的意思是数字在“www.***.com/page”和“a=+w4yt”之间变化
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多