|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Добрый день. Надо пропарсить подстроку из строки по такому принципу: на вход подаётся строка, начало подстроки, конец подстроки. Написал такую функцию: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Однако, она работает с ошибками: иногда позиция конца подстроки меньше позиции начала подстроки, тогда обрабатывается исключение. А бывает, что захватывает лишние куски, не относящиеся к строке. На простых строках работает нормально, ошибки происходят, когда в качестве строки подаётся код сайта(скачивается с помощью WebClient) и надо пропарсить, допустим, description. К примеру, сайт Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
На сайтах бывает написано и Description, и description, и закрывающий тег или ">, или " > , поэтому необходимы эти if-ы Результат: PS4, PS3, Xbox 360, Xbox One, vita Если вы желаете приобрести GTA: Grand Theft Auto IV (4) (Xbox 360) БУ позвоните по телефону +7 (925) 225-66-05 или оформите заказ в интернет магазине" > <meta http-equiv="Content-Ty Для сайта результат: NULLLLLL Знаю, что можно парсить выражения с помощью регулярок. Однако хотелось бы довести до ума эту функцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2017, 18:58 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Зачем еще раз писать функцию, которая уже написана? Кроме того, гуры рекомендуют для парсинга html-страниц использовать HtmlAgilityPack, а не регулярки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2017, 21:59 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Код: c# 1.
Примерно так для одной строки. Не проврял ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2017, 12:57 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Shocker.ProЗачем еще раз писать функцию, которая уже написана? Кроме того, гуры рекомендуют для парсинга html-страниц использовать HtmlAgilityPack, а не регулярки. Лишние телодвижения, если надо украсть одлну строку с другого сайта ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2017, 12:58 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Cat2Примерно так для одной строки. Не проврял 1) надо отэскейпить паттерны 2) надо использовать ленивый квантификатор ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2017, 13:41 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Кроме того, он же в html ищет, так что использовать $^ наверное нелогично, надо в multiline искать... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2017, 13:53 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Сторонние библиотеки использовать не хочется, т.к. спарсить надо буквально пару строк. Написал с помощью Regex: Код: c# 1.
В строке wcode - код веб-страницы сайта. Всё нормально ищется, но хочу сделать так, чтобы можно было с помощью .Groups[2] вытащить само содержимое строки без тегов. Однако 2-ую группу не получается оформить: Код: c# 1.
Сбиваются настройки ленивого квантификатора. P.S. В интернете не нашёл информации, как сделать ленивый метод поиска для группы в скобках. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2017, 17:27 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Shocker.ProCat2Примерно так для одной строки. Не проврял 1) надо отэскейпить паттерны 2) надо использовать ленивый квантификатор Shocker.ProКроме того, он же в html ищет, так что использовать $^ наверное нелогично, надо в multiline искать... Так я и не проверял. Направление дал, нормальному программисту этого достаточно ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2017, 19:10 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
mraklbrwкак сделать ленивый метод поиска для группы в скобках.знак лени добавляется к квантификатору, а не к группе, то есть так: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2017, 21:53 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
Shocker.Pro, Благодарю вас, разобрался. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2017, 11:26 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
А под C# разве нет DOM-а, как JavaScript? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2017, 10:55 |
|
Парсинг подстроки из строки
|
|||
---|---|---|---|
#18+
13thА под C# разве нет DOM-а, как JavaScript? 20445879 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2017, 12:03 |
|
|
start [/forum/topic.php?fid=20&fpage=45&tid=1399930]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 158ms |
0 / 0 |