|
Выделение текста, Regex или что то другое?
|
|||
---|---|---|---|
#18+
Всем доброго времени суток. Занимаюсь фигней Решил немного поразвлекаться с Regex. Собственно дано: текстовая переменная которая содержит вот такой вот псевдокод: Код: vbnet 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
необходимо прогнать данный код через некий парсер что бы найти все вхождения инструкций в блоках VBNET{} разбить их на составляющие <IMPORTS>, <FIELDS>, <PROPERTIES>, <METHODS>, <ACTIVE_METHOD> произвести конкатенацию данных блоков и присвоить их текстовым переменным Код: vbnet 1.
грубо говоря: в переменной str_Imports в итоге должно оказаться: Код: vbnet 1. 2. 3. 4.
в переменной str_Fields: Код: vbnet 1. 2. 3. 4. 5. 6.
табуляцию вставил для наглядности, а вот перенос строк в тексте должен быть сохранен Есть идеи как лучше реализовать? Сейчас курю документацию по RegEx, если найду вариант решения раньше отпишу сдесь ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 18:35 |
|
Выделение текста, Regex или что то другое?
|
|||
---|---|---|---|
#18+
Да и кстати. Сложность вот в чем: псевдокод может содержать в себе куски содержащие фигурные скобки к примеру Код: vbnet 1. 2. 3. 4. 5. 6.
или Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
т.е. проблема в правильном нахождении закрывающих тегов для группировок областей ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 18:58 |
|
Выделение текста, Regex или что то другое?
|
|||
---|---|---|---|
#18+
felix_ff, а нельзя ли этот "псевдокод" превратить в полноценный XML? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 19:11 |
|
|
start [/forum/topic.php?fid=20&msg=39032716&tid=1401274]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 146ms |
0 / 0 |