[ID CC2015] Можно ли Грепом изловить фамилии типа McBryde W. W.

hulk1776

Топикстартер
12 лет на форуме
Сообщения
503
Оценка реакций
16
По традиции ФИО кодируется например так:
\s\u\l+\s\u\.\s\u\.\s
АнглоФИО (транслитерированные из русского) так:
\s\u\l+\s\u[\l']\.\s\u[\l']\.\s - то есть в каждом инициале возможна вторая маленькая буква или апостроф.
А как изловить фамилию типа McBryde W. W. (то есть та, где может быть одна большая буква в середине слова)?
\s\u\l{1;2}\u?\l+\s\u[\l']\.\s\u[\l']\.\s - это не работает (почему-то)

Странно.
 

LeonidB

Их бин
Сообщения
2 402
Оценка реакций
1 482
Попробуйте не [\l'], а (\l|')
 
Последнее редактирование:

LeonidB

Их бин
Сообщения
2 402
Оценка реакций
1 482
Код:
\u(\l|')+\u\l+\s\u(\l|')?\.\s?\u(\l|')?\.
 

hulk1776

Топикстартер
12 лет на форуме
Сообщения
503
Оценка реакций
16
Сработало. (с поправочкой -
фрагмент "+\u" надо дополнить вопросом ("+\u?") - так как большой буквы может и не быть.
Спасибо.
А в чем специфика выражения (\l|')? Чем отличается от [\l']?
 

LeonidB

Их бин
Сообщения
2 402
Оценка реакций
1 482
А впрочем,
Код:
\u[\l']+\u?\l+\s\u[\l']?\.\s?\u[\l']?\.
тоже работает :)
 

vinnik63

Участник
Сообщения
285
Оценка реакций
83
у меня для конструкций:

McBryde W. W.
M’Bryde W.W.

получился такой запрос:
\s?\u[\l']\u?\l+\s\u\.\s?\u\.\s
 

LeonidB

Их бин
Сообщения
2 402
Оценка реакций
1 482

vinnik63

Участник
Сообщения
285
Оценка реакций
83
то есть в каждом инициале возможна вторая маленькая буква или апостроф
то есть, возможны варианты типа:
McBryde W'. W.
McBryde W. Ws. ??
никогда бы не подумал... :) как хитрО всё у англичан устроено... :)
 

hulk1776

Топикстартер
12 лет на форуме
Сообщения
503
Оценка реакций
16
Апостроф возможен в транслитерированных (нашим издательством) русских фамилиях. У англичан такого вроде бы нет.