我有两个问题-都与我的家谱树的gedcom文件有关(我同时使用notepad ++和textpad):
1。)
我大约有1000个人,他们的姓氏中有De,La,Le,Van,Von等(开头),例如,我希望“ Von”加入他们的给定名称(末尾)。
我该如何为所有人(例如全球性的变化)做一个改变(例如全局改变)?
2。)
我有很多村庄/城镇/城市双重名称,例如“丹麦哥本哈根,哥本哈根”。我将双字只是一个字,所以应该是“丹麦哥本哈根”。
我该如何进行更改,以使双字变成一个字(作为全局更改?
希望有人可以帮助我解决这两个问题。
谢谢!
最诚挚的问候,尼克
以下是我的意思示例:
0 @ I @ INDI 1名安娜/冯·帽子/ 2 GIVN安娜 2 SURN Von帽子 1 BIRT 2 DATE 01 Jan 2000 2 PLAC哥本哈根,丹麦哥本哈根
收件人:
0 @ I @ INDI 1名Anna von / Hat / 2 GIVN Amalie Nydia安娜·冯 2 SURN Lysarch Koenigk 1 BIRT 1940年1月1日2 DATE 2 PLAC丹麦哥本哈根
答案 0 :(得分: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