正则表达式来限定`n()`

时间:2019-03-20 22:02:40

标签: pcre negative-lookbehind

我想用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()

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

1 个答案:

答案 0 :(得分:0)

@melpomene来自以上评论的答案:

(?<![\w:])n\(\)