Как сделать совпадение и замену регулярного выражения в R только для строки, которая имеет буквенно-цифровые символы? - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть набор данных, который имеет значения, такие как «00MOC00281», а также значения, такие как «000001».Я хотел бы удалить только начальные нули из "00MOC00281", который должен стать "MOC00281", а "000001" остается как есть.

Я пытаюсь использовать gsub в R, как показано ниже:

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

Output : "OC0012B"

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 21 сентября 2018

Мы можем использовать позитивный взгляд.Это регулярное выражение соответствует только ведущим нулям, если за ними следует буква «М».Поскольку обходные пути являются утверждениями нулевой длины, «M» не является частью соответствия:

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

# [1] "MOC0012B" "000001"
...