gpt4 book ai didi

r - Stringr 函数或 gsub() 来查找 x 数字字符串并提取前 x 数字?

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

这里是 Regex 和 stringr 新手。我有一个包含一列的数据框,我想从中找到 10 位数字并仅保留前三位数字。否则,我只想保留那里的任何东西。

为了简单起见,我们假设它是一个像这样的简单向量:

new<-c("111", "1234567891", "12", "12345")

我想编写代码来返回一个包含以下元素的向量:111、123、12 和 12345。我还需要编写代码(我假设我会迭代执行此操作)以提取前两位数字一个 5 位数字的字符串,如上面的最后一个元素。

我试过:

gsub("\\d{10}", "", new)

但我不知道我可以为替换参数添加什么来获得我正在寻找的东西。还试过:

str_replace(new, "\\d{10}", "")

但我还是不知道要为替换参数输入什么才能只获取前 x 位数字。

编辑:我不同意这是一个重复的问题,因为这不仅仅是我想从字符串中提取前 X 位数字,而且我需要使用与模式匹配的特定字符串(例如,10 位数字字符串。 )

最佳答案

如果您愿意使用库 stringr,您正在使用的 str_replace 来自该库。只需使用 str_extract

vec <- c(111, 1234567891, 12)
str_extract(vec, "^\\d{1,3}")

正则表达式 ^\\d{1,3} 匹配出现在短语开头的至少 1 到最多 3 个数字。 str_extract,顾名思义,提取并返回这些匹配项。

关于r - Stringr 函数或 gsub() 来查找 x 数字字符串并提取前 x 数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56508193/

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