"Файл Gedcom - Как разделить имена и исключить двойные места".
У меня есть два вопроса - оба связаны с моим gedcom-файлом для моего генеалогического дерева (я использую и notepad++, и textpad):
1.)
У меня около 1000 человек, у которых De, La, Le, Van, Von и т. Д., Как часть их фамилии (в начале), и я хотел бы, например, "Von" быть частью их имени (в конце этого).
Как я могу сделать изменение для всех людей (как глобальное изменение), кого, например, зовут "Фон"?
2.)
У меня много двойных названий деревень / городов / городов, например "Копенгаген, Копенгаген, Дания". Я хотел бы двойное слово, чтобы быть одним словом, поэтому это будет "Копенгаген, Дания".
Как я могу сделать изменение, чтобы двойные слова стали одним словом (как глобальное изменение?
Надеюсь, что кто-то может помочь мне с этими двумя вопросами.
Заранее спасибо!
С наилучшими пожеланиями, Ник
Вот пример того, что я имею в виду:
0 @ I @ INDI 1 ИМЯ Анна /Von Hat/ 2 GIVN Анна 2 SURN Von Hat 1 BIRT 2 ДАТА 01 января 2000 года 2 PLAC Копенгаген, Копенгаген, Дания
Для того, чтобы:
0 @ I @ INDI 1 ИМЯ Анна фон /Hat/ 2 GIVN Амалия Нидия Анна фон 2 SURN Lysarch Koenigk 1 BIRT 2 DATE 01.01.1940 2 PLAC Копенгаген, Дания
1 ответ
По первому вопросу вы можете добавить эти имена в круглые скобки, чтобы создать для них группу и добавить знак необязательного |
между ними, как показано ниже. (De|La|Le|Van|Von)
, Этот код выделит их все и добавит в группу. Затем сопоставьте имя, основанное на вашем тексте, используя любой сигнал, который имеют эти имена. Например:
([a-zA-Z]+) \/(De|La|Le|Van|Von)
Затем заменено
$1 $2 /
Демо: https://regex101.com/r/9QT99V/2/
Что касается второго вопроса, вы можете использовать этот знак \1
который соответствует повторным экземплярам. Например, в вашем коде вы можете сопоставить города, сопоставив любое слово, за которым следует запятая ,
и сделать их внутри группы, используя ( )
, затем добавьте \1
соответствовать повторяющейся строке. Пример:
([a-zA-Z]+, )\1
Заменить:
$1