Регулярное выражение - убрать poly () из формулы

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

1
задан Daniel 15 January 2019 в 09:32
поделиться

2 ответа

Попробуйте это регулярное выражение:

poly\(([^,]*)[^)]*\)

Замените совпадение содержимым группы 1

Нажмите для демонстрации

Объяснение:

  • poly\( - соответствует poly(
  • ([^,]*) - соответствует 0+ появлений любого символа, который не является ,. Это фиксируется в группе 1
  • [^)]*\) - соответствует 0+ вхождений любого символа, который не является ), за которым следует )

Теперь замените все совпадение на Содержание группы 1

0
ответ дан Potatoツ 15 January 2019 в 09:32
поделиться
gsub("poly\\((.+),\\s*\\d+\\)", "\\1", inp)
# [1] "mined + cover + spp"

Или более подходящим пошаговым способом (поскольку вы боретесь с более сложным регулярным выражением):

library(magrittr)
gsub("[^a-zA-Z]", " ", inp) %>% # Drop everything that is not a letter, add space instead
  gsub("poly", "", .) %>%       # Drop the word poly 
  gsub("\\s+", " + ", .)        # Add '+' back in. '\\s+' stands for one or more spaces
# [1] "mined + cover + spp"
0
ответ дан sindri_baldur 15 January 2019 в 09:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: