正则表达式匹配

开头内容1内容1结束内容2内容2结束内容3内容3结束内容4内容4结束取开头和结束之间的内容,但结束可以出现一次,即:内容1内容1结束内容2内容2... 开头
内容1
内容1
结束
内容2
内容2
结束
内容3
内容3
结束
内容4
内容4
结束
取开头和结束之间的内容,但结束可以出现一次,即:
内容1
内容1
结束
内容2
内容2
展开
 我来答
云南新华电脑学校
2018-07-20 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部

一般情况下可以这样匹配中文,如图:<img src="https://pic4.zhimg.com/50/edcbd2faf1a916675cec852bd886e599_hd.jpg" data-rawwidth="827" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="827" data-original="https://pic4.zhimg.com/edcbd2faf1a916675cec852bd886e599_r.jpg">

先用靓汤或正则找到这个节点,再用上面的字符组匹配。
假设这个节点只有一个,用法如下:

import reimport requests as reqfrom bs4 import BeautifulSoupurl = 'xxx'html = req.get(url).textbs = BeautifulSoup(html)span = bs.find_all('span', 'pro-title')'''span = re.findall('<span\sclass="pro-title">[^<]+</span>', html)s = span[0]m = re.findall('[\u4e00-\u9fa5]+', s)'''s = str(span)m = re.findall('[\u4e00-\u9fa5]+', s)print(m)

貌似風輕
2018-07-20 · TA获得超过7280个赞
知道大有可为答主
回答量:1672
采纳率:94%
帮助的人:667万
展开全部

正则表达式:开头.*?结束.*?结束|开头.*?结束

因为你给的示例是有换行的,所以正则匹配的时候注意设置单行模式

java 单行模式示例

Pattern pattern = Pattern.compile("开头.*?结束.*?结束|开头.*?结束", Pattern.DOTALL);

因为js没有单行模式,可以使用[\d\D]或[\w\W]或[\s\S]代替.来解决

var reg = /开头[\d\D]*?结束[\d\D]*?结束|开头[\d\D]*?结束/;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式