【发布时间】:2020-09-21 17:06:24
【问题描述】:
我正在尝试使用正则表达式从单独的组中提取和提取年份,但由于格式不同而无法提取,如下所示。
应用正则表达式:([0-9]+)-?([0-9a-z]+)
以下是需要提取的完整数据:
['165-180 A.D.',
'1520-unknown',
'1665',
'1817-1923',
'Late 1800s',
'1918-1920',
'1957-1958',
'2009']
上面的正则表达式提取165,1520,166在组1和2019,unknown,5在组2。需要把1665放在group1和group2的空白字段正则表达式。 同样是 1800 年代后期的 group1
wp_page = requests.get("https://www.washingtonpost.com/graphics/2020/local/retropolis/coronavirus-deadliest-pandemics/")
wp_soup = bs(wp_page.content, 'html.parser')
[names.get_text() for names in wp_soup.find_all('h5')][0:-2]
wp_year_from_list=[]
wp_year_to_list=[]
wp_year_regex=re.compile('([0-9]+)-?([0-9a-z]+)')
for names in wp_soup.find_all('h5'):
if (wp_year_regex.search(names.text)!= None):
wp_year_from_list.append(wp_year_regex.search(names.text).group(1))
wp_year_to_list.append(wp_year_regex.search(names.text).group(2))```
【问题讨论】:
-
能否请您提供您的代码和结果,以便其他人可以重现您的问题?谢谢!
-
@mozart_kv467 用代码更新帖子
-
感谢@Mandy8055,这正是我所需要的。
标签: python python-3.x regex web-scraping list-comprehension