擅长:python、mysql、java
<p>您的正则表达式不工作,因为在第二种情况下<code>\1</code>正在尝试匹配<code>[</code>。解决这一问题的一种方法是分别调用每个选项:</p>
<pre><code>(\$[^$]*\$|\[[^]]*\])(.*)
</code></pre>
<p><a href="https://regex101.com/r/pK9gX3/97" rel="nofollow noreferrer">Demo on regex101</a></p>
<p>请注意,这样做可以使第一个组不被捕获,并将替换更改为<code>\1</code></p>