我想在文本编辑器中使用 PCRE2 正则表达式将以
_
开头的行中的每个 -
替换为 #| label:
。
示例:
#| label: my_chunk_label
my_function_name <- function(x)
应该变成:
#| label: my-chunk-label
my_function_name <- function(x)
与 .NET 正则表达式相反,可以将
(?<=^#\| label: .+)_
替换为 -
(regex101 示例),PCRE2 不支持无限向后查找,因此正则表达式无效。到目前为止,我发现的唯一方法是用 ^#[^_]+\K_
(regex101 示例)重复替换
-
,但我很好奇是否有单遍解决方案。
如果您使用 PCRE,则可以使用
\G
和 \K
然后在替换中使用
-
(?:^#|\h+label:\h+|\G(?!^))[^\r\n_]*\K_
模式匹配:
(?:
替代方案的非捕获组
^#|\h+label:\h+
匹配应位于字符串开头的模式,其中 \h
匹配水平空白字符|
或者\G(?!^)
在上一场比赛结束时断言当前位置,而不是在开始时)
关闭非捕获组[^\r\n_]*
匹配除换行符或 _
\K
忘记到目前为止匹配了什么_
匹配下划线