擅长:python、mysql、java
<h2>棘手的替换</h2>
<p>搜索:</p>
<pre><code>(?s)^(Car\([^),]+(,)[^)]*)(?=.*?Car\(([^)]+)\))|(?!^)Car\([^)]*\)[\r\n]*
</code></pre>
<p>替换:</p>
<pre><code>\1\2\3
</code></pre>
<p>在<strong><a href="http://regex101.com/r/bN9zK9/3" rel="nofollow">the Regex Demo</a></strong>中,请参见底部的替换。你知道吗</p>
<p>如果有两个以上的Car定义,则运行此替换,直到结果字符串与原始字符串相同。你知道吗</p>
<p><strong>Python代码示例</p>
<pre><code>subject=""
result= // paste your original string
while result != subject:
subject = result
result = re.sub(r"(?s)^(Car\([^),]+(,)[^)]*)(?=.*?Car\(([^)]+)\))|(?!^)Car\([^)]*\)[\r\n]*",
r"\1\2\3",
subject)
</code></pre>