#c#
#c#
Вопрос:
Я уже видел некоторые темы об этом, но те, в которых мы немного не понимаем, чего я хочу,
Я создаю специальный веб-браузер на C#
Но я хочу разделить текст текстового поля
Нравится:
Textbox1.Text = «http://google.com/lol«;
Я хочу,
Label1.Текст = «http://google.com«;
И
Label2.Text = «/lol«;
Но я хочу, чтобы он, например, определял URL из TextBox1.Text не только google.com , каждый URL
Нравится:
[
Label1.Текст = Label1.Text(«ignorefrom/»);
Label2.Text = Label2.Text(«ignorefromno/»);
]
Конечно, приведенное выше невозможно, но это в основном то, что я имею в виду
Anny1 знает, как я могу это сделать
Возможно лучшее объяснение.
Я создаю веб-браузер, который я хочу обнаружить
URL: например:http://google.com/lol
Я хочу, чтобы первая и вторая части были из URL-адреса в ярлыке
Итак: http://google.c om в label1 и /lol в label2 с каждым URL
Я видел несколько тем по этому поводу, но это немного отличалось от моего случая
Комментарии:
1. Как насчет строки типа example.com/lol/lol ? Как вы тогда его разделяете?
2. Мне неприятно это говорить, но если у вас возникли трудности с определением того, как разделить URL-адрес, то вам предстоит еще более сложная работа по написанию веб-браузера.
3. Ну, только с первым / я думаю?
4. Мне просто нужно получить google.com и все, что после этого разделилось: / whatevery / что угодно
Ответ №1:
Вы должны ознакомиться с документацией для .Uri сетевого класса. У него есть функциональность, которую вы ищете.
Пример:
var url = new Uri("http://www.google.com/some/path/file.aspx");
Console.WriteLine(url.Host); // prints www.google.com
Console.WriteLine(url.AbsolutePath); // prints /some/path/file.aspx
Свойства, используемые в этом примере:
Комментарии:
1. Я бы предложил несколько примеров кода (даже если это всего пара строк); ответы только для ссылок обычно не одобряются, и вы можете обнаружить, что ваш ответ удален.
2. Эй, эмх, я прошу прощения за то, что предоставил слишком мало информации, но я использую ФОРМЫ для examepl, я имею в виду: TextBox1.Text = » google.com/somthing «; webBrowser1.Navigate(» google.com » «что-то здесь» «/ что-то»);
3. @Kylian105 Вам не обязательно записывать результаты в консоль. Вы можете назначить эти свойства текстовому свойству вашей метки.
4. я отредактировал приведенный выше ответ, я хочу поместить что-то вроде между URL, поэтому я не совсем уверен, как это сделать?
5. Вы хотите внести изменения в URL?
Ответ №2:
Я бы использовал правильный инструмент, в этом случае вы могли бы использовать Uri.TryCreate
:
string url = "http://google.com/lol";
Uri uri;
if (Uri.TryCreate(url, UriKind.Absolute, out uri))
{
Textbox1.Text = uri.Scheme Uri.SchemeDelimiter uri.Host;
Label1.Text = uri.AbsolutePath;
}
Если вы хотите включить запрос, как указано в комментарии, вам следует использовать uri.PathAndQuery
. Затем "http://google.com/lol?lol=1"
возвращает /lol?lol=1
по желанию.
Комментарии:
1. Это работает как шарм: DDD, но одна проблема, если бы мне понравилось: google.com/lol?lol=1 это удаляет до ?lol = 1 :O?
2. @Kylian105: я отредактировал свой ответ, если вы хотите включить запрос, который вы должны использовать
uri.PathAndQuery
.
Ответ №3:
Спасибо, Тим Шмелтер
string url = "http://google.com/lol";
Uri uri;
if (Uri.TryCreate(url, UriKind.Absolute, out uri))
{
Textbox1.Text = uri.Scheme Uri.SchemeDelimiter uri.Host;
Label1.Text = uri.AbsolutePath;
}
работает как шарм 🙂
Ответ №4:
Это должно дать желаемый результат:
using System.Uri;
Uri uri = new Uri("http://google.com/lol");
Label1.Text = uri.AbsoluteUri;
Label2.Text = uri.PathAndQuery;