擅长:python、mysql、java
<p><a href="https://regex101.com/r/O0JILY/1" rel="nofollow noreferrer">If you really want to use regex</a></p>
<pre><code>^((\$startMsg\$)[^$]*?(\$endMsg\$)(([^$]*?)(?=\$startMsg\$)|.{0}))*?$
</code></pre>
<p>不幸的是,不能对字符序列使用<code>[]</code>构造,只能对单个字符使用。因此,您可以使用LookAhead/lookback(<code>(?=...)</code>和<code>(?<=...</code>)和一个惰性量词来匹配所有内容,直到那个序列,就像我对<code>([^$]*?)(?=\$startMsg\$)</code>所做的那样。你知道吗</p>
<p>不过,我要提一提的是,绝对有其他方法比这一团热更具可读性。Regex很酷,但像这样的复杂序列令人困惑,难以理解,应该尽可能避免。你知道吗</p>