如何用正则表达式替换 n 个自身的副本?
How to replace something with n duplicates of itself with regex?
我正在使用 Sublime Text。
我想把Hi
替换成30本身,所以我在查找字段中捕获了(Hi)
,并在替换字段中输入了{30}
。这没有用。执行此操作的正确语法是什么?
我无法通过 Google 找到答案,尽管它看起来很基础。
替换模式中没有反向引用乘法运算符,也不能使用限制量词(即正则表达式模式构造,而不是替换模式 构造)就像你为了达到那个结果所做的那样。
唯一正确的“普通正则表达式”方法是重复 </code> 三十次。</p>
<p>不过在编程语言中,有时您可以将匹配对象传递给回调函数,此时您已经可以使用编程语言提供的字符串操作,<a href="https://ideone.com/qG6Up5" rel="nofollow noreferrer">e.g. in Python</a>:</p>
<pre><code>import re
text = "Hi, Friend!"
print( re.sub(r'Hi', lambda z: z.group() * 30, text) )
# => HiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHi, Friend!
我正在使用 Sublime Text。
我想把Hi
替换成30本身,所以我在查找字段中捕获了(Hi)
,并在替换字段中输入了{30}
。这没有用。执行此操作的正确语法是什么?
我无法通过 Google 找到答案,尽管它看起来很基础。
替换模式中没有反向引用乘法运算符,也不能使用限制量词(即正则表达式模式构造,而不是替换模式 构造)就像你为了达到那个结果所做的那样。
唯一正确的“普通正则表达式”方法是重复 </code> 三十次。</p>
<p>不过在编程语言中,有时您可以将匹配对象传递给回调函数,此时您已经可以使用编程语言提供的字符串操作,<a href="https://ideone.com/qG6Up5" rel="nofollow noreferrer">e.g. in Python</a>:</p>
<pre><code>import re
text = "Hi, Friend!"
print( re.sub(r'Hi', lambda z: z.group() * 30, text) )
# => HiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHi, Friend!