擅长:python、mysql、java
<p>我会用<code>findall()</code>代替<code>sub()</code>,比如:</p>
<pre><code>re.findall(r'^(\d+)\s*-\s*(\(\d+\))\s*-\s*(.*?)\s*-\s*(\S+,.*)$', string)
</code></pre>
<p>演示:</p>
^{pr2}$
<p>它产生:</p>
<pre><code>201308 - (82608) - MAC 2233-007-Methods of Calculus - Klingler, Lee.txt
201308 - (12345) - ABC 2233L-007-course Name 1 - last, first.txt
201308 - (82609) - MAC 2233-007-Methods of Calculus - Klingler, Lee.txt
201308 - (12345) - ABC 2233L-007-course Name - last, first.txt
201308 - (12345) - ABC 2233L-007-course Name - last, first.txt
</code></pre>