gpt4 book ai didi

替换字符串中的第 n 个数字

转载 作者:行者123 更新时间:2023-12-04 09:28:45 25 4
gpt4 key购买 nike

我有一组我命名错误的文件。文件名如下。

Generation_Flux_0_Model_200.txt
Generation_Flux_101_Model_43.txt
Generation_Flux_11_Model_3.txt

我需要通过在现有数字上加 1 来替换第二个数字(型号)。所以正确的名字是
Generation_Flux_0_Model_201.txt
Generation_Flux_101_Model_44.txt
Generation_Flux_11_Model_4.txt

这是我写的代码。我想知道如何指定数字的位置(用新数字替换字符串中的第二个数字)?
reNameModelNumber <- function(modelName){

#get the current model number
modelNumber = as.numeric(unlist(str_extract_all(modelName, "\\d+"))[2])

#increment it by 1
newModelNumber = modelNumber + 1

#building the new name with gsub
newModelName = gsub(" regex ", newModelNumber, modelName)

#rename
file.rename(modelName, newModelName)


}


reactionModels = list.files(pattern = "^Generation_Flux_\\d+_Model_\\d+.txt$")

sapply(reactionFiles, function(x) reNameModelNumber(x))

最佳答案

我们可以使用 gsubfn以 1 递增。捕获数字 ( (\\d+) )
后跟一个 . and 'txt' at the end ( $`) 的字符串,并通过向其添加 1 来替换它

library(gsubfn)
gsubfn("(\\d+)\\.txt$", ~ as.numeric(x) + 1, str1)
#[1] "Generation_Flux_0_Model_201" "Generation_Flux_101_Model_44"
#[3] "Generation_Flux_11_Model_4"

数据
str1 <- c("Generation_Flux_0_Model_200.txt", "Generation_Flux_101_Model_43.txt", 
"Generation_Flux_11_Model_3.txt")

关于替换字符串中的第 n 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50187690/

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