Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Multiline Regex / 20 сообщений из 20, страница 1 из 1
04.05.2018, 16:50
    #39640213
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Как, блин, пропарсить многострочный файл? Допустим, хочу из получить body:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
<html>
<head>
<title>123</title>
</head>
<body>
asdf
</body>
</html>


делаю
Код: c#
1.
2.
3.
4.
			Regex r1 = new Regex(".*(<body.*)", RegexOptions.Multiline);
			string sT1 = r1.Replace(_source, "$1");
			Regex r2 = new Regex("(.*</body>).*", RegexOptions.Multiline);
			string sT2 = r2.Replace(sT1, "$1");


получаю то же что и было. А надо
Код: html
1.
2.
3.
<body>
asdf
</body>
...
Рейтинг: 0 / 0
04.05.2018, 16:54
    #39640218
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13thКак, блин, пропарсить многострочный файл?
Не использовать для парсинга html регэкспы. Обсуждалось уже сто раз.
...
Рейтинг: 0 / 0
04.05.2018, 17:06
    #39640240
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Сон Веры Павловны13thКак, блин, пропарсить многострочный файл?
Не использовать для парсинга html регэкспы. Обсуждалось уже сто раз.
Блин, я тут не завсегдатай. Что не так с ними?
Мне вообще-то надо сложную XML-ину пропарсить, html я написал для простоты. И там тэги, такие, неприятные, типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
   <
      field param=value                         >

   </
      field


                                                         >

Уроды, кароч, писали. Надо разобрать.
...
Рейтинг: 0 / 0
04.05.2018, 17:13
    #39640243
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13th, ну так и пользуйте для хтмл - хтмл аджилити рак, для хмл линку ту иксэмэель
...
Рейтинг: 0 / 0
04.05.2018, 17:18
    #39640255
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
О, Linq to XML похоже, это то, что мне надо.
...
Рейтинг: 0 / 0
04.05.2018, 17:59
    #39640300
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Блин, Linq to XML не подошёл. Там половина элементов не по правилам названа.
...
Рейтинг: 0 / 0
04.05.2018, 18:00
    #39640302
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13thТам половина элементов не по правилам названа. Чавось?!
...
Рейтинг: 0 / 0
04.05.2018, 18:09
    #39640307
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Код: xml
1.
<asdf param=value somesheet >



System.Xml.XmlException
HResult=0x80131940
Message='>' is an unexpected token. The expected token is '='. Line 1, position 117.
Source=System.Xml

И другие прелести.
...
Рейтинг: 0 / 0
04.05.2018, 20:39
    #39640394
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13th, лучше сейчас указать на ошибки в документах стороне их формирующей... а то этот адъ будет терзать вас на постоянной основе :)
...
Рейтинг: 0 / 0
05.05.2018, 05:05
    #39640524
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13th
Код: xml
1.
<asdf param=value somesheet >



System.Xml.XmlException
HResult=0x80131940
Message='>' is an unexpected token. The expected token is '='. Line 1, position 117.
Source=System.Xml

И другие прелести.
Ну, тогда это ни разу ни xml, т.к. не well-formed. И даже не html, а вообще икс-три чего. Либо требуйте наличия на входе нормальных данных, ну.. либо да, остается долгая и нудная камасутра с регэкспами.
...
Рейтинг: 0 / 0
07.05.2018, 13:38
    #39641388
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
buser13th, лучше сейчас указать на ошибки в документах стороне их формирующей... а то этот адъ будет терзать вас на постоянной основе :)
Это сторонняя организация, и я разбираю страницы и даные с их сайта. Информация публичная, но переделывать свой сайт под меня они, конечно, не будут.

buserа то этот адъ будет терзать вас на постоянной основе :)
Никакого особенного ада я не наблюдаю. Небольшие технические сложности.
...
Рейтинг: 0 / 0
07.05.2018, 13:40
    #39641391
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Сон Веры ПавловныНу, тогда это ни разу ни xml, т.к. не well-formed. И даже не html, а вообще икс-три чего. Либо требуйте наличия на входе нормальных данных
Треугольнички есть - знач XML. Требовать не от кого - см. выше.


Сон Веры Павловнылибо да, остается долгая и нудная камасутра с регэкспами.
Ничего долгого и нудного нет. Я всё уже сделал. Осталась пара мелких проблем, одна из которых - не работает шарповый Regex с многострочными данными.
...
Рейтинг: 0 / 0
07.05.2018, 13:58
    #39641404
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13thне работает шарповый Regex с многострочными данными.Если ты не разобрался, это не значит, что он не работает ))

13thполучаю то же что и было. А надо
Код: html
1.
2.
3.
<body>
asdf
</body>


Код: c#
1.
2.
3.
var _source = "<html>\r\n<head>\r\n<title>123</title>\r\n</head>\r\n<body>\r\nasdf\r\n</body>\r\n</html>";
Regex r1 = new Regex(@"<body>.*?</body>", RegexOptions.Singleline);
string sT1 = r1.Match(_source).Value;
...
Рейтинг: 0 / 0
07.05.2018, 15:04
    #39641462
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13thСон Веры ПавловныНу, тогда это ни разу ни xml, т.к. не well-formed. И даже не html, а вообще икс-три чего. Либо требуйте наличия на входе нормальных данных
Треугольнички есть - знач XML.

Тогда вот это тоже XML?
Код: xml
1.
<<abc=def>>
...
Рейтинг: 0 / 0
07.05.2018, 15:05
    #39641463
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Сон Веры Павловны13thКак, блин, пропарсить многострочный файл?
Не использовать для парсинга html регэкспы. Обсуждалось уже сто раз.
Ну да!
Лучше antlr.
https://github.com/antlr/grammars-v4/tree/master/html
...
Рейтинг: 0 / 0
07.05.2018, 20:06
    #39641668
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Shocker.Pro13thне работает шарповый Regex с многострочными данными.Если ты не разобрался, это не значит, что он не работает ))

13thполучаю то же что и было. А надо
Код: html
1.
2.
3.
<body>
asdf
</body>


Код: c#
1.
2.
3.
var _source = "<html>\r\n<head>\r\n<title>123</title>\r\n</head>\r\n<body>\r\nasdf\r\n</body>\r\n</html>";
Regex r1 = new Regex(@"<body>.*?</body>", RegexOptions.Singleline);
string sT1 = r1.Match(_source).Value;



Блин, надо же, это, оказывается называется Singleline.
...
Рейтинг: 0 / 0
07.05.2018, 20:08
    #39641669
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Shocker.Pro, спасибо
...
Рейтинг: 0 / 0
07.05.2018, 20:10
    #39641670
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
13thоказывается называется Singleline.Просто тебе нужно обработать многострочный файл как ОДНУ строку, игнорируя переводы строк, поэтому и SingleLine
...
Рейтинг: 0 / 0
08.05.2018, 08:18
    #39641780
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
Автору по рекомендую для отладки регулярных выражений присмотреться к этому инструменты Expresso 3.1 . Сам пользуюсь.

PS. Встречался сайт где Html Agility Pack затыкался на разборе структуры. Так что не всегда помогает. Возможно, что не часто затыкается, но все же...
...
Рейтинг: 0 / 0
08.05.2018, 10:49
    #39641871
13th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Multiline Regex
ErmakАвтору по рекомендую для отладки регулярных выражений присмотреться к этому инструменты Expresso 3.1 . Сам пользуюсь.

Спасибо, буду иметь ввиду. Хотя обычно мне онлайн-тестилок достаточно, типа https://regexr.com/v1/
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Multiline Regex / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]