<p>您可以使用<a href="https://pypi.org/project/regex/" rel="nofollow noreferrer">PyPi regex module</a>,它在lookback中支持无限长量词:</p>
<pre><code>(?<=url="/transfer/packages/[^\r\n"]*)[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}(?=[^\r\n"]*")
</code></pre>
<p>示例<a href="https://regex101.com/r/dbo2Fi/1" rel="nofollow noreferrer">Regex demo</a>(为演示目的选择了另一个引擎)或参见<a href="https://rextester.com/CYRJ20855" rel="nofollow noreferrer">Python demo</a></p>
<hr/>
<p>另一个选项是首先匹配带有<code>url="/transfer/packages/</code>后跟guid的行,然后匹配到下一个双引号</p>
<p>然后您可以使用例如<a href="https://docs.python.org/3/library/re.html#re.findall" rel="nofollow noreferrer">re.findall</a>来获取所有的guid</p>
<pre><code>"/transfer/packages/[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}[^"\r\n]*"
</code></pre>
<p><a href="https://regex101.com/r/g2seU2/1" rel="nofollow noreferrer">Regex demo</a><a href="https://ideone.com/rJbrcD" rel="nofollow noreferrer">Python demo</a></p>
<p>例如:</p>
<pre><code>import re
regex = r'"/transfer/packages/[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}[^"\r\n]*"'
test_str = ("something .... something else ...\n"
"url=\"/transfer/packages/00000000-0000-0000-0000-000000000000/connectors/68f74d66-ca3d-4272-9b59-4f737946b3f7/something/138bb190-3b12-4855-88e2-0d1cdf46aeb5/...../...../...../...../....\"\n"
"other things ...\n\n"
"68f74d66-ca3d-4272-9b59-4f737946b300")
for str in re.findall(regex, test_str):
print(re.findall(r"[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}", str))
</code></pre>
<p>输出</p>
<pre><code>['00000000-0000-0000-0000-000000000000', '68f74d66-ca3d-4272-9b59-4f737946b3f7', '138bb190-3b12-4855-88e2-0d1cdf46aeb5']
</code></pre>