【发布时间】:2020-06-25 18:19:50
【问题描述】:
假设我有一个这样的字符串:
=====
我想用这个替换它:
-----
我只想在它的字符数超过一定数量时替换它(我们会说 > 3)。
所以,这些应该是替代品:
=== -> ===
==== -> ----
===== -> -----
应用程序是我想用 2 级标记替换 Markdown 中的所有 1 级标题标记,而不更改嵌入的代码块。
我知道我能做到:
/=/-/g,但这匹配任何带等号 (if (x == y)) 的内容,这是不可取的。
或者这个:
/===+/----/g,但这不考虑原始匹配字符串的长度。
这可能吗?
【问题讨论】:
-
我故意忽略了它。我正在使用 vim 或 sed 进行正则表达式,但我想要一个可以应用于任何语言的通用解决方案。
-
我认为在纯 RE 中没有通用的方法来做你想做的事。如下所述,各种实现都添加了允许它的功能,但没有任何东西可以在支持 RE 的所有东西上工作。
-
所以我故意没有回答:-)。标签描述说因此,在提问时,请始终包含特定的编程语言或工具。
-
关于 javascript 的同样问题:stackoverflow.com/questions/7456559/…
-
PHP 的同样问题:stackoverflow.com/questions/6149555/…