Как очистить текст от лишнего текста с обеих сторон от искомого текста? - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д