【发布时间】:2021-09-08 17:42:46
【问题描述】:
取样本字符串:
__________Hello
我想用 20 x _ 替换以 10 x _ 开头的行
期望的输出:
____________________Hello
我可以通过多种方式做到这一点,即:
/^(_{10})/\1\1/
/^_{10}/____________________/
/^(__________)/\1\1/
etc...
问题:
有没有办法在正则表达式规范/表达式中本身 - 比如说 PCRE(或任何正则表达式库/引擎) - 指定替换出现字符?
例如:
/_{10}/_{20}/
我不知道我是脑子空白还是我从来没有这样做过,但我似乎在正则表达式规范文档中找不到任何这样的东西。
【问题讨论】:
-
不,也没有必要,还有其他方法可以实现。例如。使用回调方法作为替换参数。
-
@WiktorStribiżew 又不是真的。你根本不知道我的背景。令人惊讶的是,你坚持你不知道的事情。说真的,DV 和近距离投票是怎么回事。合法且不重复的问题,格式正确且非常清晰。 QA 的优秀候选人,可以简单地回答和添加,以便以后寻找它的其他人的价值。
-
“你根本不知道我的上下文。” - 你在哪里解释了你的“背景”?我不知道什么?我知道您要求的功能不存在。我在前两个 cmets 中回答了你的问题。您为自己的问题提供了大量解决方案的事实证明没有真正的问题 - 没有问题,不需要问题。
-
Can quantifiers be used in regex replacement in R? 的副本您甚至可以在那里找到 PCRE 正则表达式示例。
-
@WiktorStribiżew 我明白你在说什么。但是,如果我错了,请纠正我。该问题正在寻求量化对输入中已有内容的替代。即“我应该如何用点或任何其他符号替换 \\S 中的确切字符数?*” - 我希望指定 不同 的替换数量输入中匹配的内容。