python 提取红楼梦第一章得到五言律诗和七言律诗(正则表达式)

import requests
from re import findall

#1.正则表达式:年月日
# (1|2)[0-9][0-9][0-9]-(0[1-9]|1[012]|[1-12])-(0[1-9]|1[0-9]|2[0-9]|3[01]|[1-31])

# 2.《红楼梦》五言和七言诗
# 《红楼梦》第一回的网页
#get()里面是第一回的网址
string = requests.get('https://www.xyyuedu.com/gdmz/sidamingzhu/hlmeng/21651.html') \
    .text.encode("ISO-8859-1").decode('gbk').encode('utf8').decode('utf8')
strings = findall(r'<p>((?:.|\n)*?)</p>', string)
str1 = str(strings)
str1 = findall(r'(?<=\S)*[\u4e00-\u9fa5]+[?。,:\-;]*(?=\S)*', str1)
str2 = "".join(str1)
str2 = "".join(str2.split())
print(str2) #string是网页内容字符串
# 五言诗
five = r'[\u4e00-\u9fa5]{5}[,?][\u4e00-\u9fa5]{5}[,?。][\u4e00-\u9fa5]{5}[,?。][\u4e00-\u9fa5]{5}[?。]'
fiveCharacter = findall(five, str2)
print(fiveCharacter)
# 七言诗
seven = r'[\u4e00-\u9fa5]{7}[,?][\u4e00-\u9fa5]{7}[,?。][\u4e00-\u9fa5]{7}[,?。][\u4e00-\u9fa5]{7}[?。]'
sevenCharacter = findall(seven, str2)
print(sevenCharacter)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值