"Файл 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

Демо: https://regex101.com/r/Dm76wn/1/

Другие вопросы по тегам