ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1455|回复: 9

[求助] 如何利用正则表达式提取出信息

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-3-9 15:34 | 显示全部楼层 |阅读模式
例如:“地下三层顶板配筋平面图”
提取出“地下三”,“顶板”、“配筋”三个信息?
请大神指点一二!

TA的精华主题

TA的得分主题

发表于 2020-3-9 15:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主提供的数据太少了,没法找出其中的规律。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-9 15:55 | 显示全部楼层
哦 “层” 和“图”是一定会有的
“顶板”是可变的 但仅限“底板”、“梁”、“柱”、“墙”几类
“配筋平面”也是可变的,但可变项比较多
不知道这样说清楚不?

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-9 15:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-3-9 16:00 | 显示全部楼层
shixuan2008 发表于 2020-3-9 15:57
“地下三” 也是可变的 可能性也比较多

你提供一个模拟表格,把所有可能的情况都罗列出来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-9 17:17 | 显示全部楼层
需求见表格

需求 正则表达式.zip

5.96 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2020-3-9 22:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
^(\w{3})(\w{2})(\w{2})
用这名规格可以产生三个捕捉组,依次拿出来就行了

TA的精华主题

TA的得分主题

发表于 2020-3-10 09:06 | 显示全部楼层
按照楼主的文字描述,可以直接mid按照字符串长度提取吧。
如果有其他出入,上传具体模拟数据,目前的附件看不大明白

TA的精华主题

TA的得分主题

发表于 2020-3-10 09:55 | 显示全部楼层
请参考
正则表达式为 RegEx.Pattern = "([\u4e00-\u9fa5]+)([层])([顶板]+|[墙]|[柱]|[板]|[梁])([\u4e00-\u9fa5]+)([图])"


Sub findwenxiandx()

Set RegEx = CreateObject("VBscript.RegExp")
    RegEx.Global = True
    RegEx.MultiLine = True
    With ActiveDocument
         sr = .Content.Text

        '  RegEx.Pattern = "(\d+)(层)(顶板梁|墙|柱|板|梁)(\d+)(图)"
         RegEx.Pattern = "([\u4e00-\u9fa5]+)([层])([顶板]+|[墙]|[柱]|[板]|[梁])([\u4e00-\u9fa5]+)([图])"
           Set Mat = RegEx.Execute(sr)
      
             n = 0
             For Each mt In Mat
             n = n + 1
          MsgBox mt
          MsgBox mt.submatches(0)
          MsgBox mt.submatches(2)
          MsgBox mt.submatches(3)
          MsgBox n
                 
             Next
    End With
      
End Sub

TEST11.rar

17.07 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2020-3-10 09:57 | 显示全部楼层
fypm1009 发表于 2020-3-10 09:55
请参考
正则表达式为 RegEx.Pattern = "([%u4e00-%u9fa5]+)([层])([顶板]+|[墙]|[柱]|[板]|[梁])([%u4e00- ...

如果有数字或者特殊字符,可以再次基础上进行修改
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 14:30 , Processed in 0.048492 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表