正则表达式提取特定文本之后和之前的所有内容

时间:2016-10-13 22:34:12

标签: python regex

我需要从中提取:

<meta content=",\n\n\nÓscar Mauricio  Lizcano Arango,\n\n\n\n\n\n\n\nBerner León Zambrano Eraso,\n\n\n\n\n" name="keywords"><meta content="Congreso Visible - Toda la información sobre el Congreso Colombiano en un solo lugar" property="og:title"/><meta content="/static/img/logo-fb.jpg" 

其中显示的名字:ÓscarMauricioLizcano Arango和BernerLeónZambranoEraso。

所以它会像

之后的所有内容
<meta content=" 

之前

name="keywords". 

另外,使用python,我想将每个名称作为列表的元素。我会对不同的字符串重复多次,名称数量也各不相同(在这种情况下,可能是4个名称而不是2个。)

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

我能够做到这一点

re.findall(r'(?<=content=",)[^.]+(?=name=)', names)

答案 1 :(得分:1)

这可能会对您有所帮助:

# -*- coding: utf-8 -*-
import re
or_str = '<meta content=",\n\n\nÓscar Mauricio  Lizcano Arango,\n\n\n\n\n\n\n\nBerner León Zambrano Eraso,\n\n\n\n\n" name="keywords"><meta content="Congreso Visible - Toda la información sobre el Congreso Colombiano en un solo lugar" property="og:title"/><meta content="/static/img/logo-fb.jpg"'
new_str = or_str.replace("\n","")
li = re.findall('meta content=",(.*)" name="keywords"', new_str);
new_str = ''.join(li)
print re.findall('(.*?),',new_str)

我使用replace()方法将所有换行符\n更改为NULL
然后,我使用findall查找名称并将其放入列表中,并再次使用findall将每个名称存储为列表的元素,因为findall返回一个列表。