Имя: Пароль:
IT
 
Проверка регулярками ФИО. Накладка с "оглы"
0 trdm
 
06.07.10
00:00
Была нормальная регулярка, которая проверяет ФИО допускает варианты:
(Фамилия Имя Отчество)|(Фамилия Имя)|(Фамилия И. О.)|(Фамилия И.)

Тут столкнулся с вариантом:
"Фамилия Имя Отчество оглы"
Это естественно регулярка не пропустила.
Вопрос. Есть еще нормальные варианты, которые выбиваются из первого патерна? И какие?
1 EvgeniuXP
 
06.07.10
00:08
Отчество может состоять из нескольких слов.
2 trdm
 
06.07.10
00:12
(1) это уже понял.
3 trdm
 
06.07.10
00:14
Где-то так?

   вКызыОглыПатерн = "";
   Если Найти(Нрег(СамоФИО), " оглы")>0 Тогда
       вКызыОглыПатерн = "\s+[\-а-яА-ЯёЁ]{2,}"
   КонецЕсли;
   Если глРегВыр <> "" Тогда
       ЗначВозврата = 0;
       Если псВариант = 0 Тогда
           // "Самсонов Петр Петрович" или "Самсонов П. П."
           глРегВыр.Pattern = "(([\-а-яА-ЯёЁ]{2,}\s+[\-а-яА-ЯёЁ]{2,}\s+[\-а-яА-ЯёЁ]{2,}"+вКызыОглыПатерн+")|([\-а-яА-ЯёЁ]{2,}\s+[А-ЯЁ]{1,1}(\.){1,1}\s+[А-ЯЁ]{1,1}(\.){1,1}))";
       ИначеЕсли псВариант = 1 Тогда
           // "Самсонов Петр Петрович" или "Самсонов Петр"
           глРегВыр.Pattern = "(([\-а-яА-ЯёЁ]{2,}\s+[\-а-яА-ЯёЁ]{2,}\s+[\-а-яА-ЯёЁ]{2,}"+вКызыОглыПатерн+")|([\-а-яА-ЯёЁ]{2,}\s+[\-а-яА-ЯёЁ]{2,}))";
           вНомальныйШаблон = "Фамилия[пробел]Имя[пробел]Отчество
           |или:
           |Фамилия[пробел]Имя[пробел]";
       КонецЕсли;
       Matches = глРегВыр.Execute(СокрЛП(СамоФИО));
       Если Matches.Count() = 1 Тогда
           вВычФио = СокрЛП(Matches.Item(0).Value);
           Если вВычФио = СокрЛП(СамоФИО) Тогда
               ЗначВозврата = 1;
           КонецЕсли;
       КонецЕсли;
   Иначе
       Сообщить("Не подключены регулярные выражения! Обратитесь к администратору!");
       Возврат 0;
   КонецЕсли;
4 zxcvb
 
06.07.10
00:19
От "Оглы" - одни только неприятности...
"Отчество Оглы" = Отчествович.
5 trdm
 
06.07.10
18:33
буль
6 smaharbA
 
06.07.10
18:39
а чтож не просто типа ?
(.+?)\s+(.+?)\s+(.*)
7 smaharbA
 
06.07.10
18:40
хотя и имя может быть не одно, попадется какой нибудь нишпанец и отчества нет и слов много ))
8 acsent
 
06.07.10
18:41
Остап-Сулейман-Берта-Мария-Бендер-Бей
9 trdm
 
06.07.10
18:44
Вопрос не шуточный на самом деле.
Не смогут ввести частное лицо - не сделают документ.
Не сделают документ потеряется инфа.
а продажи в Ростове и так стагнируют.
10 acsent
 
06.07.10
18:45
(9) Зачем запрет? Ражве не достаточно предупреждения?
11 acsent
 
06.07.10
18:47
Добавь галочку: не русское имя
12 trdm
 
06.07.10
19:00
(11) Хорошая идея. Спасибо!
Можно сказать незря постил :)
13 almar
 
06.07.10
19:23
(0) Оглы - мужской род, Кызы - женский.
14 GROOVY
 
модератор
06.07.10
19:28
бей, хан, оглы, на сколько я помню это титулы у определенных народов, приставка к имени. Могу ошибаться.
15 NikVars
 
06.07.10
19:30
16 trdm
 
06.07.10
19:35
(15) ты эта брось :)
про интернет я знаю, вчера еще глядел на эту страницу...
17 Шапокляк
 
06.07.10
19:35
Почему-то вспомнилось - знакомый у меня есть, по фамилии Пархомчук. В армии какой-то деятель, читая список новобранцев: "так.. Пар-хом-чук. Кореец, стало быть. И как тебя звать-то - Хом или Чук?"
18 trdm
 
06.07.10
19:37
(17) "Череззаборногузадерищенко" и "Нефигасебефамилия"
19 trdm
 
06.07.10
19:38
(17) такая же фингня была: Ли-Си-Цын :)
20 NikVars
 
06.07.10
19:48
(16) Так ты умненький?!
Извини, не признал...
21 Rumpil
 
06.07.10
20:32
Кстати об испанцах, с ними реально жесть - у них ФИО состоит из 5 частей, где есть их имя, две фамилии и два отчества.
22 zxcvb
 
06.07.10
20:38
(14) В данном случае: Петро Оглы = Петрович.
23 Serg_1960
 
06.07.10
20:49
У испанцев так принято - отец и мать "на равных" именуют своих детей. Собственное полное имя из двух имен и две фамилии (по отцу и матери). И у них, как и у нас, есть уменьшительные имена - они тоже могут послужить "основой" для Фамилии(ий) испанца :)
24 Serg_1960
 
06.07.10
20:51
(23) + Что автор будет делать, со своей регуляркой, если вместо ожидаемых трёх слов ФИО встретит четыре-пять-шесть слов? :)
25 Torquader
 
07.07.10
01:25
Согласно правилам, многословные фамилии пишутся через дефис, а имена и отчества пишутся через обычный пробел. Поэтому, проверять ФИО надо очень аккуратно.
P.S. с Оглы то как раз всё просто - можно проверять наличие этого слова, а вот "Анна Мария Иванова-Гонсалес" не очень хорошо читается (если ещё вспомнить, что у Европейцев отчество не пишется).
26 trdm
 
07.07.10
15:03
(25) Дефисы в регулярках задействованы.
см (3) [\-а-яА-ЯёЁ]{2,}
27 trdm
 
07.07.10
15:07
Полезняшко: http://www.gramma.ru/RUS/?id=4.46
28 Irbis
 
07.07.10
15:09
(0) Имя-улы - тоже встречается
29 trdm
 
07.07.10
15:18
(28) :) Дефисы обрабатываются.
Пс. Закину как я статьюху в базу знаний, если никто не возражает...
30 trdm
 
07.07.10
15:18