因此,我有一个字符串数组,这些字符串具有不规则的,非顺序的前缀(例如,1. Some file name; 2. Some file name; 11. Some file name; 10. Some file name; 1. Some file name; 2. Some file name; 2. Some file name;
etc。
我将如何依次重命名这些名称?我有点思维障碍,因为我不清楚替换将如何影响字符串的可变长的第一部分,同时保留字符串其余部分的完整性(例如,一旦前缀达到一定长度它将截断字符串其余部分的内容)。我的第二个问题是如何持续识别变化的前缀以在for循环中重命名?我认为我无法使用固定的子字符串来获取前缀,因为我要么会获取字符串的一部分,要么会获取过多的字符串。我假设我需要编写某种函数来评估和规范化前缀,然后再使用replace方法。我想在我的情况下,我可以抓住并替换前三个字符,而忽略“。”。性格,但我
我假设这是摘录错误树的摘要...
if(suffix === "txt"){
prefix = file.charAt(0);
console.log(prefix);
if(!isNaN(prefix)){
newPre = prefix++;
newFile = file.replace(newPre, prefix);
console.log(newFile);
file1 = path.join(directoryPath, file);
newFile1 = path.join(directoryPath, newFile);
fs.rename(file1, newFile1, function(err){
if(err) throw err;
console.log('it worked, mofo!');
})
}
编辑:
所需的结果是数组重新前缀的顺序相同,如下所示:
[
1. Some file name
2. Some file name
3. Some file name
etc
]
最好找到一个可以处理多个字符长前缀字符串或确保前缀重命名不会截断其余字符串的结果。
谢谢
正则表达式可以帮助您解决问题。
我假设要删除的前缀是所有示例文件名开头的数字:
1. Some file name
2. Some file name
11. Some file name
10. Some file name
1. Some file name
2. Some file name
2. Some file name
用英语,我们将要删除的前缀描述为:一些数字,后跟一个圆点,后跟空白。
在正则表达式中,其写为:
^ at the beginning of the string
\d+ match some numbers
\. a dot
\s+ and some whitespace
您可以在正则表达式测试器中在线试用它,然后将其合并到您的程序中。
newFile = file.replace(/^\d+\.\s+/, prefix);
了解更多:
PS正则表达式在所有编程语言中均可用。它们非常紧凑,因此很难学习,但是一旦您了解了基础知识,就可以在许多编程语言中使用它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句