auto 发表于 2020-12-26 21:05:51

请教一个正则抽取数据的问题

一个html 文档
                  <!-- 商铺字段start:开间面积”、“商业面积”、“总建筑面积” -->
                                        <!-- 商铺字段end -->

                                        <li>
                        <div class="name">最新开盘</div>
                        <div class="des">
                            2021年                        </div>
                  </li>
                  <li>
                        <div class="name">交房时间</div>
                        <div class="des">
                            2023年                        </div>
                  </li>


我想抽取二个日期或时间:
第一个最新开盘: 2021年
第二个交房时间 :2023年

这个两个日期有可能为空: 或其他格式例如 2020-12-12或者2020年12月,或者中文 “暂时为空” 之类
这个跨多行的不知道怎么取数,搞不定这个正则,,用的XPATH 抽取数据,大多数据可以,但是xpath 不固定,有时少了一个栏次,路径就变了。。

afan 发表于 2020-12-26 21:18:48


Highlight code by AuREHelper
(?s)">(?:最新开盘|交房时间)<.+?des">\s+([^<](?#)*?)\h*</div>

gzh888666 发表于 2020-12-27 12:32:48

A大的太牛,我只会这样!(?s)<div class="des">\s*(.*?)\s*</div>

afan 发表于 2020-12-27 12:53:58

gzh888666 发表于 2020-12-27 12:32
A大的太牛,我只会这样!

对付1#你这样就ok了,我那只是预防可能有更多的标签元素

auto 发表于 2020-12-29 09:34:19

本帖最后由 auto 于 2020-12-29 09:40 编辑

afan 发表于 2020-12-26 21:18

谢谢,这个可以解决。。不大会正则,稍微变一下就不会了。。。后来我用了笨的办法,先把换行符和空白符全都替换了,不过我我要抽取的数据是没有空白符和换行符,如果遇上一段文字(有不定数的空格和换行或换段符号),那完全不会吧。
页: [1]
查看完整版本: 请教一个正则抽取数据的问题