#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»