【发布时间】:2022-06-28 22:04:25
【问题描述】:
我想使用重置匹配标记 (\K) 在单词的每个字母之间添加一个句号。我不想使用积极的向后看。
gsub("\\pL\\K", ".", "adskhfks", perl = TRUE)
# [1] "a.ds.kh.fk.s"
由于某些原因,这仅适用于每两个字母(在 macOS 12.31 上使用 RStudio 4.2.0。)。它在regex101 上按预期工作。
这正常吗?有解决办法吗?
【问题讨论】:
-
在这种情况下使用基于lookbehind的模式没有任何问题。 R 中的 PCRE 实现与 PHP 的 PCRE 实现(您在 regex101 测试的那个)有点不同。当然,您也可以捕获该字母,然后在替换模式中使用反向引用。
-
我认为发生这种情况的原因就在这里stackoverflow.com/questions/41924971/…