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

标签 r regex string stringr

这里是 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/

相关文章:

r - 使用 ggvis 对数比例和限制

r - 如何在堆积条形图ggplot2上组织百分比值

python - 将字符串拆分为字母和标点符号,正则表达式除外

delphi - 帕斯卡 : Delphi Length String Command Error

R Markdown - 没有 ODT 和 LaTeX 选项作为输出

r - 将(交叉)表转换为 ListView

php - 正则表达式与php

正则表达式如何找到模式?

java - 在 Java 中,我需要什么表达式来对这个字符使用正则表达式? |

javascript - 从数组中拆分具有多个分隔符的字符串