擅长:python、mysql、java
<p>您可以在这里使用<code>re.sub</code>:</p>
<pre><code>>>> s = 'diff_pr_EUR-44_cordex_rcp45_mon_ave_2048-2060_minus_2005-2017_mon10_ave1_withsd.nc'
>>> print (re.sub(r'^.*?(rcp\d+).*(_mon\d+).*', r'\1\2', s))
rcp45_mon10
</code></pre>
<p><a href="https://regex101.com/r/339foc/1" rel="nofollow noreferrer">RegEx Demo</a></p>
<p><strong>详情:</strong></p>
<ul>
<li><code>^.*?</code>:在开始处匹配0或任意字符(lazy)</li>
<li><code>(rcp\d+)</code>:匹配并捕获<code>rcp</code>,在第1组中后跟1+个数字</li>
<li><code>.*</code>:匹配0或任意字符(贪婪)</li>
<li><code>(_mon\d+)</code>:匹配并捕获<code>_mon</code>,后跟第2组中的1+个数字</li>
<li><p><code>.*</code>:匹配任何内容直到结束</p></li>
<li><p><code>r'\1\2'</code>:用组#1和组#2的反向引用替换字符串</p></li>
</ul>