Извлечение части строки - PullRequest
1 голос
/ 17 июня 2011

Я анализирую HTML-страницу, используя Html Agility Pack. Я успешно получил следующий текст в строке:

 
WOCN11 CWTO 170951

Special weather statement

Updated by Environment Canada

At 5:51 AM EDT Friday 17 June 2011.



Special weather statement issued for..

Sarnia - Lambton

London - Middlesex

Oxford - Brant

Waterloo - Wellington.

---------------------------------------------------------------------

Dense fog patches with near zero visibility have been reported in

The above areas. Extra caution is urged for travellers in these 

areas.



Fog is expected to lift shortly after sunrise this morning.



END/OSPC

ACCN10 CWTO 170735

Forecast of thunderstorm potential for the province of Ontario

Issued by Environment Canada at 3:35 AM EDT Friday 17 June 2011.

The next statement will be issued at 4.30 PM today.

---------------------------------------------------------------------

Forecast of thunderstorm potential.



Today..Isolated non severe thunderstorms over eastern

And Northeastern Ontario.



Tonight..Isolated non severe thunderstorms over eastern and 

Northeastern Ontario this evening.



Saturday..Isolated non severe thunderstorms over extreme

Southwestern Ontario mainly late in the afternoon and evening.



---------------------------------------------------------------------

A thunderstorm is defined as severe if it produces one or more of the 

following:



 - wind gusts of 90 km/h or greater.

 - hail of 2 centimetres in diameter or greater.

 - rainfall amounts of 50 millimetres or greater in one hour or less.

 - a tornado.



Note: this forecast is issued twice daily from May 1 to September 30.



END/OSPC

И я хочу извлечь только следующую часть:


Forecast of thunderstorm potential.



Today..Isolated non severe thunderstorms over eastern

And Northeastern Ontario.



Tonight..Isolated non severe thunderstorms over eastern and 

Northeastern Ontario this evening.



Saturday..Isolated non severe thunderstorms over extreme

Southwestern Ontario mainly late in the afternoon and evening.



Я использую Csharp в .Net 3.5. Любая помощь приветствуется.

Вопрос обновлен

Ответы [ 4 ]

3 голосов
/ 17 июня 2011

Один из способов сделать это (хотя и не на 100% идеальным) выглядит следующим образом:

string[] textSplit = theWholeTextString.Split(new string[] { "---------------------------------------------------------------------" }, StringSplitOptions.None);
string myText = textSplit[2];

Если, конечно, нужный вам текст всегда находится в 3-м разделе, а каждый разделвсегда разделены строкой '------'

0 голосов
/ 17 июня 2011

Похоже, единственное, что ограничивает ваш текст, ------------------------------------- -------------------------------- символы.

Как насчет использования string.Split (). Вот пример:

string[] textArray = wholeText.Split(new string[] {"---------------------------------------------------------------------"}, StringSplitOptions.RemoveEmptyEntries);

string text = textArray[2];
0 голосов
/ 17 июня 2011

Если вы можете предположить, что вам нужно только то, что находится между строками -------------, попробуйте следующее регулярное выражение: -{40,}([\s\S](?=-{40,}))-{40,}.

Regex.Match(report, @"-{40,}([\s\S](?=-{40,}))-{40,}").Value
0 голосов
/ 17 июня 2011

Чтобы мы могли вам помочь, вам необходимо сообщить нам, как мы можем определить, какой текст сохранить. Является ли это строкой '---' + 'Forecast' до последней строки '---' или это что-то еще, и т. Д. RegExp сделает работу, но точный синтаксис я не могу сказать без дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...