ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 正则表达式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:17 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 snowfly1112 于 2019-8-16 15:25 编辑

请教大家,想提取某一段字符,不知道正则表达式如何写
QX385-040042GG.dwg
想提取QX385-040042GG,
QX385-040072GG 板.dwg
想提取QX385-040072GG
  QX385-040082GG板.dwg
想提取QX385-040082GG。  QX385-040082.dwg
想提取QX385-040082
目标是想提取扩展名前汉字,空格都去掉后,之前的文本。如果扩展名前是数字,就全部提取。
有朋友写的是
Public Function re(rng As Range)
    Dim ma
    With CreateObject("vbscript.regexp")
        .Pattern = "(\D[\s\S]*\d)"
        .Global = True
        Set ma = .Execute(rng.Value)
    End With
    re = ma(0).submatches(0)
End Function

但是QX385-040082GG板.dwg  提取成QX385-040082,希望提取的是QX385-040082GG

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:33 | 显示全部楼层
^[^\u4e00-\u9fa5\s\.]+     你这挺没劲的,自己都搞不清楚自己想干嘛,反复的修改需求。要是学习就去看书,要是求助就把需求定死了,要是想要更深入的指导建议花钱。正则实际就是找规律,就给出几条数据还想让别人帮你找到全部的规律?

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
把这里改成这样
.Pattern = "(\D[\s\S]*\d[^.dwg]{2})"

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:34 | 显示全部楼层
楼主,你的行为让人不耻。

早先你另一帖说了提取至数字结尾,他人提供的正则错在何处?!!!!

发帖提供他人早先的代码要交待他人写此码时的背景,你的描述用语倒象早先的写码者水平很烂。


为免误解,声明:我不是楼主所张贴的代码的写码者,只是看到求助者的求助描述语焉不详,却往往骄傲的要命,有些求助者的求助明明描述狗屁不通,类似“好象我描述不到位”、“好象我描述错了一点”的回复让人看了既可笑又可气。

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
gbgbxgb 发表于 2019-8-16 15:34
楼主,你的行为让人不耻。

早先你另一帖说了提取至数字结尾,他人提供的正则错在何处?!!!!

代码是我的,相当的愤怒,他喵的当初的需求可不是这样,而且我也交待了当时代码的适用范围

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
killq 发表于 2019-8-16 15:37
代码是我的,相当的愤怒,他喵的当初的需求可不是这样,而且我也交待了当时代码的适用范围

理解。正因如此,我才跟个帖发下牢骚,顺带告诫类似楼主的求助者。

论坛的这种丑陋现象让我看了非常生气。

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:43 | 显示全部楼层
所以说,提供思路就好,没必要喂到嘴边

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:45 | 显示全部楼层
gbgbxgb 发表于 2019-8-16 15:40
理解。正因如此,我才跟个帖发下牢骚,顺带告诫类似楼主的求助者。

论坛的这种丑陋现象让我看了非常生 ...

这种类似模糊挂人的行为我第一眼看到时有点想骂人,不过还是忍了忍。
MD,感觉别人免费帮他帮出毛病来了

TA的精华主题

TA的得分主题

发表于 2019-8-16 15:47 | 显示全部楼层
一步不行搞两步啊,先用mid套instr把点号和后面的干掉,再用正则把汉字干掉,空格不用管,提取出来的数据加trim。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-16 15:52 | 显示全部楼层
gbgbxgb 发表于 2019-8-16 15:34
楼主,你的行为让人不耻。

早先你另一帖说了提取至数字结尾,他人提供的正则错在何处?!!!!

由正则引发的血案!!!
以前不知正则,最近才发现,正有此需求,所以求助。不想却遭来一阵炮轰。现实是工作中的问题随时会出现新情况,遇到就会寻求方法,若您水平够用,大可指导一下正则表达式比较全面的帮助,提取方法,若不想回复,大可无声。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-20 11:12 , Processed in 0.043946 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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