編輯列表中的字符串我正在製作一個列錶框,在腳本中使用它來選擇我想要分析的批次號。 我想根據文件夾中的文件名製作批號列表。 我不知道如何將文件名編輯為僅批號。
這就是文件名列表的樣子
"data_20229.csv", "data_20230.csv", "data_20231.csv", "data_20232.csv",
"data_20236.csv", "data_20237.csv", "data_20238.csv", "data_20239.csv",
"data_20240.csv", "data_20241.csv", "data_20242.csv", "data_20243.csv",
"data_20244.csv", "data_20245.csv", "data_20247.csv", "data_20248.csv",
"data_20251.csv", "data_20252.csv", "data_20253.csv", "data_20254.csv",
"data_20255.csv", "data_20256.csv", "data_20257.csv", "data_20258.csv",
"data_20259.csv", "data_20260.csv", "data_20261.csv", "data_20262.csv",
"data_20263.csv", "data_20264.csv", "data_20265.csv", "data_20266.csv",
"data_20267.csv", "data_20268.csv", "data_20269.csv", "data_20270.csv"
我希望列表像這樣結束
"20229", "20230", "20231", "20232", "20233", "20234", "20235", "20236",
"20237", "20238", "20239", "20240", "20241", "20242", "20243", "20244", "20245",
"20246", "20247", "20248", "20249", "20250", "20251", "20252", "20253", "20254",
"20255", "20256", "20257", "20258", "20259", "20260", "20261", "20262", "20263",
"20264", "20265", "20266", "20267", "20268", "20269", "20270"
自動化和腳本編寫內容組織數據混合和清理回复:編輯列表中的字符串親愛的@ealindahl ,
句點屬於缺失值,即正則表達式未找到匹配項。
您可以在後面刪除它們,或者在列表生成期間避免它們,並且必須稍微更改循環。
刪除它們後綴的一個簡單方法如下(第一種方法通過字符串操作,第二種方法通過循環)。
BR
names default to here(1);
list = {., ., ., ., ., ., ., "20131", "20132", "20133"};
new_list = parse(substitute(char(list),".,", ""));
show (list);
show (new_list);
new_list={};
for (i=1, i<= n items(list), i++,
if (!is missing(list[i]), new_list = insert(new_list, list[i]));
);
show(new_list);
回复:編輯列表中的字符串謝謝喬治! 這真的很好用。 我以前從未使用過正則表達式,我嘗試對其進行一些谷歌搜索來解決這一問題。 我在同一文件夾中確實有一些垃圾文件,其中不包含任何數字。因此這些文件的名稱不會出現在列表中,但句點會出現在列表中。 我該如何擺脫經期?
看起來像這樣 {., ., ., ., ., ., ., "20131", "20132", "20133",}
回复:編輯列表中的字符串此方法不使用 for 循環。
Names Default To Here( 1 );
exampleList = {"data_20229.csv", "data_20230.csv", "data_20231.csv",
"data_20232.csv", "data_20236.csv", "data_20237.csv", "data_20238.csv",
"data_20239.csv", "data_20240.csv", "data_20241.csv", "data_20242.csv",
"data_20243.csv", "data_20244.csv", "data_20245.csv", "data_20247.csv",
"data_20248.csv", "data_20251.csv", "data_20252.csv", "data_20253.csv",
"data_20254.csv", "data_20255.csv", "data_20256.csv", "data_20257.csv",
"data_20258.csv", "data_20259.csv", "data_20260.csv", "data_20261.csv",
"data_20262.csv", "data_20263.csv", "data_20264.csv", "data_20265.csv",
"data_20266.csv", "data_20267.csv", "data_20268.csv", "data_20269.csv",
"data_20270.csv"};
str = char(examplelist);
newstr = substitute(str, "data_", "", ".csv", "");
new_list = parse(newstr);
show( new_list );回复:編輯列表中的字符串謝謝,吉姆。
對於此類目的,Word 函數是一個很好且易於理解的函數。
更通用的方法可能是使用正則表達式,
所以只需將 Jims Script 的一行替換為
exampleList[i] = regex(exampleList[i], "([0-9]+)", "\1")
將搜索第一次出現的數字。
當數據不像本例中那樣乾淨時,這可能很有用。 正則表達式非常強大。
回复:編輯列表中的字符串最簡單的方法是使用 Word() 函數。
Names Default To Here( 1 );
exampleList = {"data_20229.csv", "data_20230.csv", "data_20231.csv",
"data_20232.csv", "data_20236.csv", "data_20237.csv", "data_20238.csv",
"data_20239.csv", "data_20240.csv", "data_20241.csv", "data_20242.csv",
"data_20243.csv", "data_20244.csv", "data_20245.csv", "data_20247.csv",
"data_20248.csv", "data_20251.csv", "data_20252.csv", "data_20253.csv",
"data_20254.csv", "data_20255.csv", "data_20256.csv", "data_20257.csv",
"data_20258.csv", "data_20259.csv", "data_20260.csv", "data_20261.csv",
"data_20262.csv", "data_20263.csv", "data_20264.csv", "data_20265.csv",
"data_20266.csv", "data_20267.csv", "data_20268.csv", "data_20269.csv",
"data_20270.csv"};
For( i = 1, i <= N Items( exampleList ), i++,
exampleList[i] = Word( 2, exampleList[i], "_." )
);
show( exampleList );
有關 Word() 函數的文檔可以在腳本索引中找到。