Как очистить текст от лишнего текста с обеих сторон от искомого текста? - C#

Узнай цену своей работы

Формулировка задачи:

С сайта*парсится*текст,*имеющий несколько*вариантов:

Вар 1

FG654HGFH=FGJ6DJ131HDFHSFSGRv=http://site1.ru/jfd6oin/bfg654ryan-knight%3Futm_/te654DDFm%3D%26cid%3D1065 или

Вар 2

dfg6546sdgs=dgd646ttrdhx32gfh=http://site2.com/nhgh65h/bfg654ryan-kng654fight%/etesd6s5d4sdgs654DDFm%3D%2 или

Вар 3

dfh6565jrtu=u63mb2,1CjyttmKYU=http://site3.net/nsdxch6/bfg654vcvn-knsdsffbnht%/sdg987bn,uuio98ofp64utrury

Особые условия:

- домен*site(1,2,3, …) - принят условно. Имя домена не имеет какой-либо тенденции и всегда разное; -http://, может быть и*https://

ВОПРОС.

Как очистить текст, чтобы осталось, к примеру для http://site1.ru: -http://site1.ru или - site1.ru или - Site1 при этом не привязываясь к имени домена, т.к. имена доменов не известны?

Решение задачи: «Как очистить текст от лишнего текста с обеих сторон от искомого текста?»

textual
Листинг программы
using System.Text.RegularExpressions;
var s = "dfh6565jrtu=u63mb2,1CjyttmKYU=http://site3.net/nsdxch6/bfg654vcvn-knsdsffbnht%/sdg987bn,uuio98ofp64utrury";
 
// 1) банальный Split:
var result1 = s.Split( '=' )[ 2 ].Split( '/' )[ 2 ]; // site3.net
 
// 2) через регулярки:
var result2 = Regex.Match( s, "https{0,1}://[^/]{0,}" ).Value; // http:/ /site3.net
 
// 3) вырезаем строку по индексам
var result3 = "";
var start = s.IndexOf( '=', s.IndexOf( '=' ) + 1 ) + 1; // старт находится после второго =
var finish = s.IndexOf( '/', start + 8 ); // поиск индекса следующего символа / сразу после http://
if(finish != -1 ) // если URL имеет символ /
    result3 = s.Substring( start, finish - start ); // http:/ /site3.net
else // если URL не имеет символа /
    result3 = s.Substring( start, s.Length - start ); // http:/ /site3.net

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы