нужна помошь по регулярному выражению

_Leonchik_

Новичок
нужна помошь по регулярному выражению

Доброго времени суток.
Задача найти в тексте слова кот. начинаются с Большой буквы, более 2-ух символов в длине, и находятся на растоянии одного пробела друг от друга, да и не находящиеся между различными кавычками, т.е . без всякого форматирования и тегов <b|i|a>, а ткже может закончится в коце предложения точкой, запятой в середине предложения.

Например: [Ученику Российской школы, Ивану Петровичу из 10 Класса налили бокал "Светлой Балтики", а он отказался. ]
Из данного примера неоходимо найти:
1) Ученику Российской
2) Ивану Петровичу
3) Светлой Балтики - не должно, т.к. обрамленно кавычками.

Я поступил следующим образом:
1. Выдрал для начало весь текст. кот. не входит в хтмл теги.
2.
PHP:
$str = "пример выше";
preg_match_all("~([\s]{0,1}([А-ЯA-Z]{1}[а-яa-z]{2,}[\.\,\s]{0,1}))~u", $str, $match);
В данном случае я решил найти слово с большой буквы [А-ЯA-Z]{1}, после кот. идет само слово более 2-ух символов [а-яa-z]{2,}, и по краям я поставил пробелы а в конце еще добавил точку и запятую. u - поддержка utf-8
Таким образом я нахожу все большие слова. Далее уже в коде я могу проверить на то, рядом ли они находятся.
Не очень удобный подход. И тем более, что поскольку слову допустимо закончится на точке или запятой, и после обработки в коде попадаются пары слов, между кот. есть точка или запятая.

Прошу помощи в построении регулярого выражения.
 

_Leonchik_

Новичок
не. все гораздо проше и сложней.

Есть свои же тексты, надо найти всех людей в тексте (имя и фамилия всегда с большой же пишется) и наставить на них сылки, на их же профайлы. Задача их найти.

-~{}~ 08.10.08 23:40:

а найти их также надо, что бы не только поставить сылки, но и прицепить к ним данные тексты.
 

berkut

Новичок
легче вытащить все имена-фамилии из профайлов и искать в тексте конкретные данные
 

_Leonchik_

Новичок
не, это точно нето. Профайлов там уже более 1000. а будет еще в сотни раз больше. это точно не выход.

Увеличение текстов и профайлов прогрессирует достаточно хорошо.
Лучше найти 10-20 пар слов, пусть даже половина не Имен и Фамилий, и проверить их. Склонения не пугают в этом случае (Ивану Петровичу) :)

-~{}~ 09.10.08 00:04:

я бы оставил как есть, но есть промашки в поиске, причем странные.
Кода много выходит с strpos и strlen для поиска подряд стоящих Слов. и дебагить сложно. Лучше уж регулярку настроить. Пока без успешно, но я стараюсь.
 

dimagolov

Новичок
_Leonchik_, задумайся над тем, что упоминаться 100% будет только фамилия, а имена могут быть как с отчествами, так и инициалами так и вообще без ничего.
Имхо надо искать по фамилиям по мере их появления (новых в профилях) и по мере появления нового текста по всем фамилиям. Ну и индекс соответствий делать, естественно. Толку от этого будет явно больше, чем от поиска пар слов в общих чертах похожих на Имя Фамилию.
 

_Leonchik_

Новичок
dimagolov - большое спасибо за совет, но пары слов как раз и будут Имя Фамилия (это обговоренно). Нет соответствия - нет сылки, т.к. более того, что еще и однофамильцы с одинаковыми именами также имеются.
Далее уже будут разруливать др. механизмы, вплоть до ручного вмешательства.
Также как часто будут тексты, где подряд будут 2 слова с большой буквы? - редко.
Нет идей с регулярным выражением? Я пока тоже ниче не родил. :0(
 

prolis

Новичок
А что помешало сразу пару искать:
[А-ЯA-Z]{1}[а-яa-z]{2,}\w[А-ЯA-Z]{1}[а-яa-z]{2,}
 
Сверху