我有这样的表达:
<a class="a-link-normal" href="https://www.amazon.it/Philips-GC8735-PerfectCare-Generatore-Vapore/dp/B01J5FGW66/ref=gbph_img_s-3_7347_c3de3e94?smid=A11IL2PNWYJU7H&pf_rd_p=82ae57d3-a26a-4d56-b221-3155eb797347&pf_rd_s=slot-3&pf_rd_t=701&pf_rd_i=gb_main&pf_rd_m=A11IL2PNWYJU7H&pf_rd_r=MDQJBKEMGBX38XMPSHXB" id="dealImage"></a>
我需要得到“/dp/”旁边的 10 个字母 (B01J5FGW66)
我怎样才能制作一个这样做的功能?
使用正则表达式:
import re
s = '<a class="a-link-normal" href="https://www.amazon.it/Philips-GC8735-PerfectCare-Generatore-Vapore/dp/B01J5FGW66/ref=gbph_img_s-3_7347_c3de3e94?smid=A11IL2PNWYJU7H&pf_rd_p=82ae57d3-a26a-4d56-b221-3155eb797347&pf_rd_s=slot-3&pf_rd_t=701&pf_rd_i=gb_main&pf_rd_m=A11IL2PNWYJU7H&pf_rd_r=MDQJBKEMGBX38XMPSHXB" id="dealImage"></a>'
print(re.search(r"dp\/([A-Za-z0-9]{10})\/", s)[1])
输出:B01J5FGW66
解释:
开始于"dp/"
:
dp\/
由 () 分隔的捕获组匹配 10 个(到 {10})小写字母 (az)、大写字母 (AZ) 和数字 (0-9):
([A-Za-z0-9]{10})
结束于"/"
:
\/
使用re.search
我们可以在您的字符串中搜索该表达式,s
并使用[1]
.
请注意,如果找不到匹配项,您可能需要添加额外的代码:
m = re.search(r"dp\/([A-Za-z0-9]{10})\/", s)
if m is not None:
print(m[1])
else:
# if nothing is found, search return None
print("No match")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句