-1

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

1.)

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

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

2.)

我有许多双重村庄/城镇/城市名称,例如“哥本哈根、哥本哈根、丹麦”。我希望双词只是一个词,所以它会是“哥本哈根,丹麦”。

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

希望有人可以帮助我解决这两个问题。

提前致谢!

最好的问候,尼克

这是我的意思的一个例子:

0 @I@ INDI 1 NAME Anna /Von Hat/ 2 GIVN Anna 2 SURN Von Hat 1 BIRT 2 DATE 01 Jan 2000 2 PLAC Copenhagen, Copenhagen, Denmark

至:

0 @I@ INDI 1 姓名 Anna von /Hat/ 2 GIVN Amalie Nydia Anna von 2 SURN Lysarch Koenigk 1 BIRT 2 DATE 01 Jan 1940 2 PLAC Copenhagen, Denmark

4

1 回答 1

2

对于第一个问题,您可以将这些名称添加到圆括号内,为它们创建一个组,并|在它们之间添加可选符号,如下所示。(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/

于 2019-02-17T00:24:51.503 回答