脚本实现在每个字符串后面添加该字符串是第几次出现,求助,感谢
发表于 : 2018-12-16 14:12
求助实现以下文本操作:
将下面文本内容中的括号内的部分,如((DR,((SR,(SA,SG)),((SG,SR),SA))),HS)中每个英文字符后面添加该字符串是第几次出现,即实现
((DR,((SR,(SA,SG)),((SG,SR),SA))),HS) ——> ((DR1,((SR1,(SA1,SG1)),((SG2,SR2),SA2))),HS1)。即DR第一次出现时,将DR后面添加1,DR1;
第二次出现时将DR后面添加2,DR2.
#NEXUS
begin trees;
TREE * UNTITLED = [&R] ((DR,((SR,(SA,SG)),((SG,SR),SA))),HS);
TREE * UNTITLED = [&R] (((((SG,(SR,SA)),(SR,SA)),DR),SG),HS);
TREE * UNTITLED = [&R] (((DR,(SA,(SG,SR))),(SA,(SR,SG))),HS);
TREE * UNTITLED = [&R] ((DR,(((SA,SR),SG),((SA,SR),SG))),HS);
end
期望脚本实现:
#NEXUS
begin trees;
TREE * UNTITLED = [&R] ((DR1,((SR1,(SA1,SG1)),((SG2,SR2),SA2))),HS1);
TREE * UNTITLED = [&R] (((((SG1,(SR1,SA1)),(SR2,SA2)),DR1),SG2),HS1);
TREE * UNTITLED = [&R] (((DR1,(SA1,(SG1,SR1))),(SA2,(SR2,SG2))),HS1);
TREE * UNTITLED = [&R] ((DR1,(((SA1,SR1),SG1),((SA2,SR2),SG2))),HS1);
end
将下面文本内容中的括号内的部分,如((DR,((SR,(SA,SG)),((SG,SR),SA))),HS)中每个英文字符后面添加该字符串是第几次出现,即实现
((DR,((SR,(SA,SG)),((SG,SR),SA))),HS) ——> ((DR1,((SR1,(SA1,SG1)),((SG2,SR2),SA2))),HS1)。即DR第一次出现时,将DR后面添加1,DR1;
第二次出现时将DR后面添加2,DR2.
#NEXUS
begin trees;
TREE * UNTITLED = [&R] ((DR,((SR,(SA,SG)),((SG,SR),SA))),HS);
TREE * UNTITLED = [&R] (((((SG,(SR,SA)),(SR,SA)),DR),SG),HS);
TREE * UNTITLED = [&R] (((DR,(SA,(SG,SR))),(SA,(SR,SG))),HS);
TREE * UNTITLED = [&R] ((DR,(((SA,SR),SG),((SA,SR),SG))),HS);
end
期望脚本实现:
#NEXUS
begin trees;
TREE * UNTITLED = [&R] ((DR1,((SR1,(SA1,SG1)),((SG2,SR2),SA2))),HS1);
TREE * UNTITLED = [&R] (((((SG1,(SR1,SA1)),(SR2,SA2)),DR1),SG2),HS1);
TREE * UNTITLED = [&R] (((DR1,(SA1,(SG1,SR1))),(SA2,(SR2,SG2))),HS1);
TREE * UNTITLED = [&R] ((DR1,(((SA1,SR1),SG1),((SA2,SR2),SG2))),HS1);
end