|
Regex У попа была собака...
|
|||
---|---|---|---|
#18+
Здравствуйте. Вот стишок: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Вводные данные такие: Куплет начинается с У попа... и идёт до следующего У попа... или от У попа... до конца текста. В куплете обязательно должно быть слово была . В приведенном стихе один куплет "бракованный" и содержит жила вместо была . Регулярке должны соответствовать все куплеты содержащие была . Пытался сделать что то вот такое, но это не работает: Код: c# 1.
Подскажите пожалуйста как составить правильное выражение. Заранее благодарю за ответы и помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 16:43 |
|
Regex У попа была собака...
|
|||
---|---|---|---|
#18+
А почему используется ^ и $ ? Какое фактическое разделение между куплетами и строками? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 16:55 |
|
Regex У попа была собака...
|
|||
---|---|---|---|
#18+
^ используется т.к. У попа точно начинается с новой строки Разделение на строки - полагаю \n (или \r\n - на 100% не уверен). Собственно в точности как приведено в стишке Разделение на куплеты: Или весь текст от У попа (включительно) до следующего У попа (не включая) Или от У попа до конца текста (если это последний куплет). Для этого случая пытался использовать $. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 20:17 |
|
Regex У попа была собака...
|
|||
---|---|---|---|
#18+
жесть. я пас. прикладной смысл у этой задачи есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 20:18 |
|
Regex У попа была собака...
|
|||
---|---|---|---|
#18+
Задача прикладная. Есть лог файлы создаваемые log4net. Формат лога известен - каждая запись stack trace-a начинается с новой строки с указанием даты и времени ( У попа ). Приложение пишет туда массу exception-ов. Причём большая часть из них - одни и те же повторяющиеся ошибки ( У попа ... на могиле написал ). Файлы вырастают до мегабайтов и где то внутри находится полезная информация об одном не регулярном exception-e который меня интересует. Повторяющиеся ошибки можно идентифицировать по токену ( была ). А информации о не регулярном exception-e нет за исключением того что он не содержит токен. Задача состоит в том что бы вырезать все регулярные ошибки и оставить только полезную информацию. Я легко могу решить задачу средствами C#. Например находить все начала stack trace-ов по дате используя regexp, затем брать все куски от одного до другого совпадения и проверять строку на string.Contains(token). Но это как то не очень решение. Думаю должно быть одно регулярное выражение которое решает задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 21:21 |
|
Regex У попа была собака...
|
|||
---|---|---|---|
#18+
S_A_V_eот У попа до конца текста (если это последний куплет). Для этого случая пытался использовать $. Для конца текста нужно использовать >>>\Z<<< Также нужно указать опции: SingleLine - чтобы метасимвол >>>.<<< матчил в том числе и переводы строк и Multiline - чтобы метасимвол >>>^<<< матчил начало любой строки, а не только текста целиком. Что-то в этом роде: Код: c# 1. 2. 3.
Но всё же это не то. Надо ещё подумать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 04:35 |
|
Regex У попа была собака...
|
|||
---|---|---|---|
#18+
S_A_V_eПовторяющиеся ошибки можно идентифицировать по токену ( была ). А информации о не регулярном exception-e нет за исключением того что он не содержит токен. Задача состоит в том что бы вырезать все регулярные ошибки и оставить только полезную информацию. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Вырезаются все куски, содержащие токен была . Остаются только нужные. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 12:33 |
|
|
start [/forum/topic.php?fid=20&msg=39460538&tid=1399884]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 560ms |
0 / 0 |