如何在 R 中仅对具有字母数字字符的字符串进行正则表达式匹配和替换?

How to do regular expression match and replacement in R for only string which has alphanumeric characters?

我有一个数据集,它有像“00MOC00281”这样的值,也有像“000001”这样的值。我只想从“00MOC00281”中删除前导零,它应该变成 "MOC00281" 而“000001”保持原样。

我正尝试在 R 中使用 gsub,如下所示:

Command: gsub("^0{2}(*[A-Z])", "", "00MOC0012B")

Output : "OC0012B"

感谢任何帮助。

我们可以使用积极的前瞻。此正则表达式仅匹配后跟 "M" 的前导零。由于环视是零长度断言,"M" 不是匹配的一部分:

sub("^0+(?=[A-Z])", "", c("00MOC0012B", "000001"), perl = TRUE)

# [1] "MOC0012B" "000001"