用于限定 `n()` 的正则表达式
regex to qualify `n()`
我想用 dplyr::n()
替换 n()
。我想匹配
这样的条目
n()
n()
a = n()
b = runif(n())
但不匹配
这样的条目
function()
dplyr::n()
following regex 有效,但我想知道是否有更好的方法。
- 模式:
([^:\w]|\A)n\(\)
;替换:dplyr::n()
这是使用 negative lookbehinds 的两种不成功的方法。第一个(寻找非 B边界,未命中 dplyr::n()
,而第二个未命中 function()
.
- 模式:
(?<!\B)n\(\)
;替换:dplyr::n()
- 模式:
(?<!:)n\(\)
;替换:dplyr::n()
注意:我对正则表达式的风格很灵活。我最喜欢使用 Atom 替换存储库中的多个文件。 (这并不是一个真正的约束,但是这个被修改的代码是 R,它使用 PCRE.) The substitution pattern above is written for regex101.
@melpomene 对上述评论的回答:
(?<![\w:])n\(\)
我想用 dplyr::n()
替换 n()
。我想匹配
n()
n()
a = n()
b = runif(n())
但不匹配
这样的条目function()
dplyr::n()
following regex 有效,但我想知道是否有更好的方法。
- 模式:
([^:\w]|\A)n\(\)
;替换:dplyr::n()
这是使用 negative lookbehinds 的两种不成功的方法。第一个(寻找非 B边界,未命中 dplyr::n()
,而第二个未命中 function()
.
- 模式:
(?<!\B)n\(\)
;替换:dplyr::n()
- 模式:
(?<!:)n\(\)
;替换:dplyr::n()
注意:我对正则表达式的风格很灵活。我最喜欢使用 Atom 替换存储库中的多个文件。 (这并不是一个真正的约束,但是这个被修改的代码是 R,它使用 PCRE.) The substitution pattern above is written for regex101.
@melpomene 对上述评论的回答:
(?<![\w:])n\(\)