删除最后一个数字之后的所有字符

标签 r regex string gsub

我的列中的值是字母和数字的组合,如下所示:abc1237pqr, 413ogty, ptw569q, qrt

如何删除最后一个数字出现后的所有字符,使其变为:abc1237, 413, ptw569, qrt?也就是说,保留开头的字母,但不保留数字后面的字母。

最佳答案

我们可以使用 sub 来捕获一个数字 ((\\d)),后跟一个或多个非数字字符 ([^0 -9]+) 直到字符串末尾 ($) 并替换为捕获组的反向引用 (\\1)

sub("(\\d)[^0-9]+$", "\\1", df1$v1)
#[1] "abc1237" "413"     "ptw569"  "qrt"    

数据

df1 <- data.frame(v1 =c('abc1237pqr', '413ogty', 'ptw569q', 'qrt'), stringsAsFactors = FALSE)

关于删除最后一个数字之后的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318437/

相关文章:

r - 查找匹配行的最快方法

javascript - 有什么方法可以改进这个正则表达式吗?

.net - 字符串对象的 GetHashCode() 值是否唯一?

Java - 字符串中倒数第二次出现的字符

r - 如何替换R中其他数据集的值?

r - 创建一个新列来指示每种独特动物的可变数量

php - 正则表达式,只允许特定格式。 "John-doe"

JAVA 替换除可变字符串以外的所有内容

r - 是否可以使用 R 中的某些 API 通过在线经纪人(例如 Zecco 或 Fidelity)进行股票交易

PHP正则表达式删除重复单词