ZebroidФорумПубличный разделВопросыРазбивка текста с помощью регулярных выражений

Разбивка текста с помощью регулярных выражений

09 июня 2010, 16:20
Зарегистрирован: 03 июня 2010, 15:22
Здравствйте!

Есть текст

"мобильности и боеспособности русов. Местное население начало с русами войну, и, потеряв в одном из сражений своего вождя, русы затворились в крепости Берда (Бердаа) и перезимовали там.

Весной следущего года русам с боем удалось прорваться к своим судам, отремонтировать их и уйти из Закавказья на родину.



СРАЖЕНИЕ ПОД АЛ-ХАДАСОМ В 954. Активность в сражениях, презрение к опасности, знание военно-прикладных ремесел, очевидные морские навыки былиу: «Здесь впервые мы видим употребление рядом терминов «Рус» и «Рум» (впоследствии это часто встречается в восточной литературе при изображении двух мощных военных сил, являющихся наиболее опасными врагами мусульман)» (77).

СРАЖЕНИЕ ПОД ИТИЛЕМ В 965. Совершив свой первый поход в 994 году (поход на вятичей), весной 995 года князь киевский Святослав пошел на Хазарию — государство, Его оппонент академик "

Требуется разбить этот текст по кускам, где в виде ограничителя будет выступать название статьи.

Регулярное выражения я решил сделать такое: "\n[A-Я]{2,}[1234567890A-Я\(\)\ ]{5,}\.?" без кавычек разумеется.

Эту регулярку я отладил на сайте http://www.pagecolumn.com/tool/regtest.htm - всё выделяется как надо, а при запуске импорта в зеброиде при использовании режима "разбивать статьи по признаку:" (галочку напротив "Регулярное выражение" я поставил) он просто зависает. При этом процессорное время не потребляет вообще.

Вопрос: регулярки вообще работают? Если да, то почему у меня не работает? Или формат регулярок немножко нетрадиционный?

Спасибо за внимание!!! Просто я думаю эта фича многим нужна=)



09 июня 2010, 16:51
Зарегистрирован: 10 апреля 2012, 00:00
Регулярка не совсем правильная:

[attachment=0:3twe5q82]screenshot.1.png[/attachment:3twe5q82]

Но подвисать программа не должна в любом случае. Скорее всего дело в том, что файл слишком большой (минусом использования регулярных выражений, что они стопорятся на текстах, в которых символов больше 100 тыс. или 1 млн., уже точно не помню)

Лучше всего будет, если вы мне дадите текст для тестов: я протестирую его у себя и заодно дам вам правильную регулярку (если её можно составить в данном случае).



09 июня 2010, 17:04
Зарегистрирован: 03 июня 2010, 15:22
спасибо! Программа кстати до сих пор не отвисла (по моему глюк, т.к. проц она не занимает, к жёсткому диску тоже не обращается)

А регулярку действительно нужно подправить, т.к. забыл что может быть тире ещё (а заголовки начинаются все с новой строки и нескольких букв и не состоят из прописных символов, а кончатся могут точкой) Вот так правильней вроде)

\n[A-Я]{2,}[1234567890A-Я\(\)\-\ ]{5,}\.?



09 июня 2010, 17:55
Зарегистрирован: 10 апреля 2012, 00:00
спасибо! Программа кстати до сих пор не отвисла (по моему глюк, т.к. проц она не занимает, к жёсткому диску тоже не обращается)


Программа могла еще зависнуть если вы пытаетесь импортировать вордовский файл который в данный момент открыт вордом.



Тема закрыта