Я бы хотел заменить n()
на dplyr::n()
.Я хотел бы сопоставить записи типа
n()
n()
a = n()
b = runif(n())
, но не сопоставить записи типа
function()
dplyr::n()
следующее регулярное выражение работает, но я былинтересно, есть ли лучший способ.
- pattern:
([^:\w]|\A)n\(\)
;подстановка: $1dplyr::n()
Вот два неудачных подхода с использованием отрицательных взглядов .Первый (который ищет не B раунд, пропускает dplyr::n()
, в то время как второй пропускает function()
.
- паттерн:
(?<!\B)n\(\)
; замена: dplyr::n()
- шаблон:
(?<!:)n\(\)
; подстановка: dplyr::n()
Примечание: я гибко отношусь к аромату регулярных выражений. Мне удобнее использовать Atom для замены на несколькофайлы в репозитории. (На самом деле это не ограничение, но этот код для изменения - R, который использует PCRE .) Приведенный выше шаблон замещения написан для regex101 .