"Gedcom file - How to split names and eliminating double places."

"Gedcom file - How to split names and eliminating double places."

我有两个问题 - 都与我的家谱树的 gedcom 文件有关(我同时使用 notepad++ 和 textpad):

1.)

我有大约 1000 个人,他们的姓氏中有 De、La、Le、Van、Von 等(在姓氏的开头),例如,我希望“Von”成为他们名字的一部分(在名字的末尾)。

我怎样才能为所有人做改变(作为全局改变),例如名为“Von”的人?

2.)

我有很多双 village/town/city 名字,例如“哥本哈根,哥本哈根,丹麦”。我希望双词只是一个词,所以它会是“丹麦哥本哈根”。

如何进行更改,使双字变成一个字(作为全局更改?

希望有人能帮我解决这两个问题。

提前致谢!

此致,尼克

这里有一个例子来说明我的意思:

0 @I@印度 1 姓名安娜/冯哈特/ 2 GIVN 安娜 2 苏恩·冯·哈特 1 BIRT 2 日期 2000 年 1 月 1 日 2 PLAC Copenhagen,哥本哈根,丹麦

收件人:

0 @I@印度 1 姓名安娜冯/帽子/ 2 GIVN Amalie Nydia 安娜·冯 2 SURN 莱萨克·科尼格 1 BIRT 2 日期 1940 年 1 月 1 日 2 PLAC 哥本哈根,丹麦

对于第一个问题,您可以将这些名称添加到圆括号内,为它们创建一个组,并在它们之间添加可选的符号|,如下所示。 (De|La|Le|Van|Von)。此代码将突出显示它们并将它们添加到一个组中。然后,使用这些名字具有的任何提示,根据您的文本匹配名字。例如:

([a-zA-Z]+) \/(De|La|Le|Van|Von) 

然后替换为

  /

演示:https://regex101.com/r/9QT99V/2/

关于第二个问题,你可以利用这个符号</code>来匹配重复的实例。例如,在您的代码中,您可以通过匹配任何后跟逗号 <code>, 的单词来匹配城市,并使用 ( ) 将它们放在一个组中,然后将 </code> 添加到匹配重复的字符串。示例:</p> <pre><code>([a-zA-Z]+, )

替换为:


演示:https://regex101.com/r/Dm76wn/1/