gpt4 book ai didi

javascript - 如何根据具有不同前缀的其他字符串重命名字符串?

转载 作者:行者123 更新时间:2023-12-02 22:48:12 25 4
gpt4 key购买 nike

我有一个谷歌电子表格(我也有一个csv),我将其与我想要使用的名称列(源)一起存储在第一行中,以及我想要在第一行中更改的名称列(目标,来自第 2 行)。

#1 - Giorgi Margvelashvili,#1 - Mikheil Saakashvili,#1 - United National Movement,#10 - Levan Chachua,#10 - National Party of Radical Democrats of Georgia,#10 - People's Party,#11 - Akaki Asatiani,#11 - Giorgi Chikhladze,#11 - Our Country,#11 - Sportsman's Union,#12 - Future Georgia,#12 - Traditionalists - Our Georgia and Women's Party,#13 - Mamuka Melikishvili,#13 - Merab Kostava Society,#13 - Teimuraz Mzhavia,#14 - Freedom Party,#14 - Georgian Group,#14 - Labour Council of Georgia,#15 - Avtandil Margiani,#15 - Mikheil Saluashvili,#17 - Nestan Kirtadze,#17 - Sergo Javakhidze,#17 - Tamaz Bibiluri,#2 - Davit Bakradze,#2 - Georgian Dream,#2 - Levan Gachechiladze,#2 - United Opposition,#20 - Mamuka Chokhonelidze,#20 - Nugzar Avaliani,#22 - Kartlos Gharibashvili,#22 - Teimuraz Bobokhidze,#3 - Arkadi (Badri) Patarkatsishvili,#3 - Christian-Democratic Movement,#3 - Free Georgia,#3 - Freedom Party,#3 - Future Georgia,#3 - Georgian Group,#3 - Labour,#3 - Labour Council of Georgia,#3 - Merab Kostava Society,#3 - Movement for Fair Georgia,#3 - National Democratic Party of Georgia,#3 - New Rights,#3 - Nino Burjanadze,#3 - People's Party,#3 - Public Movement,#3 - Republican party,#3 - Sportsman's Union,#4 - Labour,#4 - Republican party,#4 - Shalva Natelashvili,#5 - Christian Democratic Alliance,#5 - Christian-Democratic Movement,#5 - Davit Gamkrelidze,#5 - Georgian Politics,#5 - Giorgi Targamadze,#5 - Labour,#5 - National Party of Radical Democrats of Georgia,#5 - New Rights,#5 - Our Country,#5 - Right Wing Alliance Topadze Industrialists,#5 - Sportsman's Union,#5 - Traditionalists - Our Georgia and Women's Party,#6 - Free Georgia,#6 - Giorgi (Gia) Maisashvili,#6 - Koba Davitashvili,#6 - Right Wing Alliance Topadze Industrialists,#7 - Giorgi Liluashvili,#7 - Irina Sarishvili-Chanturia,#7 - Movement for Fair Georgia,#7 - Sportsman's Union,#8 - Christian Democratic Alliance,#8 - National Democratic Party of Georgia,#8 - Zurab Kharatishvili,#9 - Georgian Politics,#9 - Nino Chanishvili,#9 - Public Movement
Giorgi Margvelashvili,Georgian Dream,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Mikheil Saakashvili,United National Movement,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
United National Movement,United National Movement,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Nino Chanishvili,Initiative Group,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

只要目标相似但仍有一点不同(#number - sameNameAsTheTarget),如何根据具有不同前缀的另一个字符串重命名字符串?

我在 javascript 中尝试过这个(但 Python 中的答案对我来说也很好),但只有当源和目标完全相同时我们才能通过测试。

根据 Barmar 的回答,我做了这个,因为 google 脚本可能对可以使用的库有一些限制:

/**
This function will rename the cells of the first columns if they have an elment of the first row
@customFunction
*/
function RENAMECELL() {
var app = SpreadsheetApp;
var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
for (var row = 2; row < 60; row++) {
var name = activeSheet.getRange(row,1).getValue();
console.log(name);
for (var col = 1; col < 50; col++) {
if (activeSheet.getRange(1,col).getValue().indexOf(name) !== -1) {
activeSheet.getRange(row,1).setValue(activeSheet.getRange(1,col).getValue());
break;
}
}
}
}

这一切都要感谢布拉马尔和艾伦·威尔斯。但目标列中仍有几行未更新:

#1 - Giorgi Margvelashvili,Georgian Dream
#1 - Mikheil Saakashvili,United National Movement
#1 - United National Movement,United National Movement
Nino Chanishvili,Initiative Group
#11 - Sportsman's Union,Sportsman's Union
#14 - Georgian Group,Georgian Group
#20 - Mamuka Chokhonelidze,Initiative Group
#17 - Sergo Javakhidze,Movement for a Fair Georgia
#12 - Traditionalists - Our Georgia and Women's Party,Traditionalists - Our Georgia and Women's Party
#11 - Our Country,Our Country
#11 - Giorgi Chikhladze,Initiative Group
#13 - Merab Kostava Society,Merab Kostava Society
#13 - Mamuka Melikishvili,Initiative Group
#3 - Public Movement,Public Movement
#15 - Avtandil Margiani,Initiative Group
#14 - Labour Council of Georgia,Labour Council of Georgia
#10 - People's Party,People's Party
#11 - Akaki Asatiani,Union of Georgian Traditionalists
#17 - Nestan Kirtadze,Initiative Group
#20 - Nugzar Avaliani,Initiative Group
#17 - Tamaz Bibiluri,Initiative Group
#2 - Davit Bakradze,United National Movement
#2 - Georgian Dream,Georgian Dream
#2 - Levan Gachechiladze,Initiative Group
#2 - United Opposition,United Opposition
#13 - Teimuraz Mzhavia,Christian Democratic People's Party
#15 - Mikheil Saluashvili,Initiative Group
#22 - Kartlos Gharibashvili,Initiative Group
#22 - Teimuraz Bobokhidze,Initiative Group
#3 - Arkadi (Badri) Patarkatsishvili,Initiative Group
#3 - Christian-Democratic Movement,Christian-Democratic Movement
#14 - Labour Council of Georgia,Labour
#3 - Nino Burjanadze,Democratic Movement – United Georgia
Christian Democratic Alliance,Christian Democratic Alliance
#3 - New Rights,New Rights
Shalva Natelashvili,Labour Party
Davit Gamkrelidze,New Right
Giorgi Targamadze,Christian-Democratic Movement
#10 - National Party of Radical Democrats of Georgia,National Party of Radical Democrats of Georgia
#3 - Republican party,Republican party
#3 - Free Georgia,Free Georgia
Georgian Politics,Georgian Politics
Giorgi (Gia) Maisashvili,Party of the Future
Koba Davitashvili,People's Party
#3 - Movement for Fair Georgia,Movement for Fair Georgia
Right Wing Alliance Topadze Industrialists,Right Wing Alliance Topadze Industrialists
Irina Sarishvili-Chanturia,Hope party
Zurab Kharatishvili,European Democrats
#12 - Future Georgia,Future Georgia
#10 - Levan Chachua,Initiative group
#3 - National Democratic Party of Georgia,National Democratic Party of Georgia
#14 - Freedom Party,Freedom Party
Giorgi Liluashvili,Initiative group

最佳答案

循环第一行的单元格。然后循环剩余的行。使用 .includes() 测试该行第一个单元格中的名称是否在第一行单元格的值中。如果是,请将其替换为第二个单元格中的值。

for (int col = 1; col < 60; col++) {
let name = activeSheet.getRange(1, col).getValue();
for (int row = 2; row < 50; row++) {
if (name.includes(activeSheet.getRange(row, 1).getValue())) {
activeSheet.getRange(1, col).setValue(activeSheet.getRange(row, 2).getValue());
break;
}
}
}

关于javascript - 如何根据具有不同前缀的其他字符串重命名字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58290753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com