我有以下网址
content/test
content/contact
products/
products/96_product/
products/96_product/86000_productdescription1
products/96_product/86343_productdescription3
products/96_product/76002_productdescription4
products/96_product/100222_productdescription5
products/100_product233/86303_productdescription1
products/100_product233/844543_productdescription3
products/100_product233/73442_productdescription4
products/100_product233/103434_productdescription5
我需要获得产品说明。数字可以是5或6位数。如何制定正则表达式以在列表中获取产品说明?
答案 0 :(得分:1)
您只需使用str.split()
分割'_'
,然后选择最后一部分:
descriptions = []
for url in urls:
parts = url.split("_")
if len(parts) == 3:
descriptions.append(parts[-1])
对于更复杂的情况,您可以使用这样的正则表达式:
import re
regex = re.compile(r"products/.*/\d{5,6}_(.*)")
descriptions = []
for url in urls:
match = regex.match(url)
if match:
descriptions.append(match.group(1))
答案 1 :(得分:1)
您可以执行以下操作:
[re.search('product\/([0-9]{5,6})_productdescription', s).group(1)
if re.search('product\/([0-9]{5,6})_productdescription', s)
else ''
for s in urls]
答案 2 :(得分:0)
正则表达式
^.*\d{5,6}_([^\/])*$
解释
^
开始
.*
任何事情
\d{5,6}
五六位数
_
强调
()
将此保存在结果中
[^\/]*
任何不是斜线的东西
$
结束
https://docs.python.org/2/library/re.html python正则表达式引用 http://tartley.com/?p=1349正则表达式pdf cheatsheet