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

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
По традиции ФИО кодируется например так:
\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

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528
Попробуйте не [\l'], а (\l|')
 
Последнее редактирование:

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528
Код:
\u(\l|')+\u\l+\s\u(\l|')?\.\s?\u(\l|')?\.
 
  • Спасибо
Реакции: hulk1776

hulk1776

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

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528
А впрочем,
Код:
\u[\l']+\u?\l+\s\u[\l']?\.\s?\u[\l']?\.
тоже работает :)
 

vinnik63

Участник
Сообщения
322
Реакции
99
у меня для конструкций:

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

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

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Апостроф возможен в транслитерированных (нашим издательством) русских фамилиях. У англичан такого вроде бы нет.