R regex gsub отдельные буквы и цифры
у меня есть строка, которая смешивает буквы и цифры:
"The sample is 22mg"
Я хотел бы разделить строки, где число сразу же следует буква, как это:
"The sample is 22 mg"
Я попытался это:
gsub('[0-9]+[[aA-zZ]]', '[0-9]+ [[aA-zZ]]', 'This is a test 22mg')
но я не получаю желаемого результата.
какие предложения?
2 ответов
вам нужно использовать скобки захвата в регулярном выражении и групповые ссылки в замене. Например:
gsub('([0-9])([[:alpha:]])', '\1 \2', 'This is a test 22mg')
здесь нет ничего R-специфического; помощь R для regex
и gsub
должно быть полезно.
вам нужно backreferencing:
test <- "The sample is 22mg"
> gsub("([0-9])([a-zA-Z])","\1 \2",test)
[1] "The sample is 22 mg"
запоминается все, что указано в скобках. Затем к ним обращается \1 (для первого объекта в parens), \2 и т. д. Первая обратная косая черта избегает интерпретации обратной косой черты в R, чтобы она передавалась синтаксическому анализатору регулярных выражений.