<p>因为<a href="https://www.python.org/dev/peps/pep-0020/" rel="nofollow noreferrer">readability counts</a>我建议<em>不要</em>编写自己的正则表达式,而是使用<a href="https://docs.python.org/3/library/os.path.html" rel="nofollow noreferrer">os.path.dirname</a>和{a3}。后者匹配以<code>C:\</code>开头的url和文件路径</p>
<pre class="lang-py prettyprint-override"><code>from os.path import dirname, join
from urllib.parse import urlparse
txt = r'''
\Files\System\ado\
C:\Dir\me\match1\poq!"&\file.txt
http://example/uploads/ssh/
{drive of encrypted files}\FreezedByWizard.README.TXT
%Program Files%\Common Files\System\ado\
/home/user/web/other.longextension
'''
result = [dirname(line) for line in txt.split("\n") if not urlparse(line).scheme]
</code></pre>
<p>结果是:</p>
^{pr2}$
<p>如果需要尾部斜杠,可以<a href="https://stackoverflow.com/questions/2736144/python-add-trailing-slash-to-directory-string-os-independently">easily add them by using os.path.join</a>。在</p>
<pre class="lang-py prettyprint-override"><code>result = [join(dirname(line), '') for line in txt.split("\n") if not urlparse(line).scheme]
</code></pre>
<p>现在,<code>result</code>包含以下条目:</p>
<pre><code>\Files\System\ado\
{drive of encrypted files}\
%Program Files%\Common Files\System\ado\
/home/user/web\
</code></pre>