Как изменить номер в URL-адресе внутри цикла for C#

#c# #string #url

#c# #строка #url

Вопрос:

Мне нужна помощь в изменении номера в URL-адресе внутри цикла for.

Позвольте мне привести пример:

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

Я хочу увеличить номер этой страницы. Насколько я знаю, необходимо преобразовать URL в строку. После редактирования этой строки необходимо преобразовать строку обратно в url.
Есть ли у меня шанс увеличить его, назначив целое число внутри URL?

Также, если этот URL указан как вид https://www.***.com/page2a= w4ytq , нужен ли нам другой способ решения этой проблемы?

Комментарии:

1. Пожалуйста, поделитесь с нами своим кодом, который показывает, как вы пытались решить эту проблему.

Ответ №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";
        }       
    }
}
  

Если вам сначала нужно получить baseurl из полного URL-адреса, используйте регулярное выражение для извлечения строки перед первой цифрой:

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

Что касается вашего второго вопроса:

  • Регулярное выражение по-прежнему работает как шарм
  • Раскомментировать "a= w4ytq";

Комментарии:

1. «Также, если этот URL-адрес указан как вид www .***.com/page2a= w4ytq, нужен ли нам другой способ решения этой проблемы?» Можете ли вы определить эту проблему более точно? a= w4yt Всегда должно добавляться после номера страницы?

2. да, я имел в виду, что число изменяется между » www .***.com/page» и «a= w4yt»