正则表达式以限定'n()`

问题描述 投票:0回答:1

我想将n()替换为dplyr::n()。我想匹配条目,例如

n()
 n()
a = n()
b = runif(n())

但是不是匹配条目,如

function()
dplyr::n()

following regex有效,但我想知道是否有更好的方法。

  • 模式:([^:\w]|\A)n\(\);替代:$1dplyr::n()

以下是使用negative lookbehinds的两种不成功方法。第一个(寻找非B边界,未命中dplyr::n(),第二个未命中function()

  • 模式:(?<!\B)n\(\);替代:dplyr::n()
  • 模式:(?<!:)n\(\);替代:dplyr::n()

注意:我对正则表达式很灵活。我最喜欢使用Atom在仓库中替换多个文件。 (这并不是真正的约束,但是要修改的代码是R,它使用PCRE。)上面的替换模式是为regex101编写的。

pcre negative-lookbehind
1个回答
0
投票

@以上评论中的melpomene的回答:

(?<![\w:])n\(\)
© www.soinside.com 2019 - 2024. All rights reserved.