擅长:python、mysql、java
<p>你真的想放弃<code>^</code>锚;我怀疑<code>href</code>永远不会在一行的开头。你知道吗</p>
<p>您不需要<code>/im</code>部分,它们应该被<code>re.</code>标志常量替换。这里有Perl正则表达式语法,Python没有专门的<code>/.../flags</code>语法。你知道吗</p>
<p>因此,有太多的转义,没有实际的Python字符串。实际上你并没有包括<code>5678-random-stuff-here-letters-and-numbers</code>部分。你知道吗</p>
<p>改用这个:</p>
<pre><code>object_name = re.findall(r'href="(/dirone/Dir_Two\/dirthree/[^"/]*)"', url, re.I)
</code></pre>
<p>我删除了多行标志,因为删除了<code>^</code>的字符串的开头不再匹配。我在路径周围添加了一个组(<code>(...)</code>),以便<code>findall()</code>返回这些,而不是整个匹配。<code>[^"/]*</code>部分匹配任何字符,而不是用来捕获文件名部分而不是另一个目录名的引号或斜杠。你知道吗</p>
<p>简短演示:</p>
<pre><code>>>> import re
>>> example = '<a href="/dirone/Dir_Two/dirthree/5678-random-stuff-here-letters-and-numbers">'
>>> re.findall(r'href="(/dirone/Dir_Two\/dirthree/[^"/]*)"', example, re.I)
['/dirone/Dir_Two/dirthree/5678-random-stuff-here-letters-and-numbers']
</code></pre>