JSL 錯誤“包含”的評估中沒有足夠的參數我有一個“文件名”列表,我想創建一個僅包含其名稱包含/以“_2020”結尾的文件的子列表。 我正在使用正則表達式來選擇這些文件:“_\d{4}”。但是我收到“參數不足”錯誤。
如果我測試 ListID,我會得到預期的文件名列表,它不是空的。 我將感謝有關如何修復我的腳本的任何指示。
日誌錯誤是:在訪問或評估 'Contains' 時沒有足夠的參數,包含/*###*/(Regex( Char( ListIDs[i] ), "_\d{4}" ))
Show (ListIDs);<BR />ListIDs = {"2020-06","practice", "file1_2020", "file2_2020"}<BR /><BR />SelectedIDs = {};
For (i = 1, i <= N Items (ListIDs), i++,
If (Contains(Regex(Char(ListIDs[i]), "_\d{4}")),
Insert Into (SelectedIDs, i);
);
);
N Items (SelectedIDs);
Print(SelectedIDs);腳本回复:JSL 錯誤“包含”的評估中沒有足夠的參數嗨,馬克,
非常感謝,我喜歡你的解決方案。當解決方案是一些消極的表達時,我總是感到驚訝。
喜歡 ”不(缺少(正則表達式(ListIDs[i],“_\d{4}”)) ”。
回复:JSL 錯誤“包含”的評估中沒有足夠的參數ListIDs[SelectedIDs];
回复:JSL 錯誤“包含”的評估中沒有足夠的參數我認為你可以簡化測試。 您不需要 Contains() 並且當它的第一個參數是缺失值時它的使用是有問題的。 此修改直接使用 Regex() 函數結果。 (我重新格式化了腳本以使其結構更易於查看。)
ListIDs = { "2020-06", "practice", "file1_2020", "file2_2020" };
Show( ListIDs );
SelectedIDs = {};
For( i = 1, i <= N Items (ListIDs), i++,
If(
Not( Is Missing( Regex( ListIDs[i], "_\d{4}" ) ) ),
Insert Into( SelectedIDs, i );
);
);
Print( SelectedIDs );回复:JSL 錯誤“包含”的評估中沒有足夠的參數你好,
我決定修改腳本並使用函數 Regex Match。這個讓我更接近我的目標。這一個返回預期文件名列表中的位置。我怎樣才能得到“名字”而不是他們的位置。
ListIDs = {"2019-11", "2020-06", "file1_2020", "file2_2020"};
SelectedIDs = {};
For (i = 1, i <= N Items (ListIDs), i++,
If ((Regex Match (Char(ListIDs[i]), "_\d{4}") !={}),
Insert Into (SelectedIDs, i);
);
);
N Items (SelectedIDs);
Print(SelectedIDs);回复:JSL 錯誤“包含”的評估中沒有足夠的參數嗨,馬克,
第二個參數是“定界符”嗎? 我本以為會是“,”而不是“2020”。Regex 的目標是僅選擇具有“_2020”或將來具有“_2021”、“_2021”等的文件。抱歉,如果我沒有解釋自己。
回复:JSL 錯誤“包含”的評估中沒有足夠的參數您需要 Contains() 函數的第二個參數來指定目標字符串。 像這樣:
Show (ListIDs);ListIDs = {"2020-06","practice", "file1_2020", "file2_2020"}SelectedIDs = {};
For (i = 1, i <= N Items (ListIDs), i++,
If (Contains(Regex(Char(ListIDs[i]), "_\d{4}"), "2020"),
Insert Into (SelectedIDs, i);
);
);
N Items (SelectedIDs);
Print(SelectedIDs);