«Файл Gedcom - Как разделить имена и исключить двойные места». - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть два вопроса - оба относятся к моему gedcom-файлу для моего генеалогического дерева (я использую и блокнот ++, и текстовую панель):

1.)

У меня около 1000 человек, которыеиметь De, La, Le, Van, Von и т. д., как часть их фамилии (в начале), и я хотел бы, например, «Von» быть частью их данного имени (в конце).

Как я могу сделать изменение для всех людей (как глобальное изменение), которых, например, зовут "Фон"?

2.)

У меня естьмногие двойные названия деревень / городов / городов, например «Копенгаген, Копенгаген, Дания»Я хотел бы, чтобы двойное слово было просто одним словом, поэтому это было бы «Копенгаген, Дания».

Как я могу сделать изменение, чтобы двойные слова стали одним словом (как глобальное изменение?

Надеюсь, кто-нибудь может помочь мне с этими двумя вопросами.

Заранее спасибо!

С уважением, Ник

Вот пример того, что я имею в виду:

0 @ I @ INDI 1 ИМЯ Anna / Von Hat / 2 GIVN Anna 2 SURN Von Hat 1 BIRT 2 DATE 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 Ответ

0 голосов
/ 17 февраля 2019

Для первого вопроса вы можете добавить эти имена в круглые скобки, чтобы создать для них группу и добавить знак необязательного | между ними, как показано ниже.(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/

...