ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: liu-aguang

[原创] 正则表达式入门与提高---VBA平台的正则学习参考资料

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-3 15:16 | 显示全部楼层
本帖已被收录到知识树中,索引项:文本处理和正则
很受教!谢谢分享!

TA的精华主题

TA的得分主题

发表于 2019-11-12 21:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liu-aguang 发表于 2014-6-10 23:42
(三)用正则处理文本的一个例子
     我们已经认识了几个简单的元字符(序列),并能用它们构建一些实用的正 ...

对代码的讲解很清晰

TA的精华主题

TA的得分主题

发表于 2019-11-17 15:57 | 显示全部楼层
本帖最后由 aoe1981 于 2019-11-17 16:32 编辑
liu-aguang 发表于 2014-6-16 10:50
第四篇   技巧篇     文本处理归根到底是对特定串的捕捉(查找),所以我们讨论的所谓”技巧”聚焦于对特定字 ...

回复56楼。
关于浮点数匹配,我测试的结果是:
56,28
-56 -46
+5600、+3200
.12,.36
-.365,-.322
+.205 +.365
56.32 63.22
+3.805,+5.22
-356.206 -26.102
0, 0,   0
多行浮点数:[+-]?\d*\.?\d+

下图中是您的方法:[+-]?\d+(\.\d+)?|\.\d+

您的方法中存在匹配组,且对我臆造的:+.205 +.365 -.365,-.322匹配不到正负号。


捕获.PNG


看看之前做得标记,确实读得不认真,如今又学习了。


进一步看帖后,将您的修改为:[+-]?\d+(?:\.\d+)?|[+-]?\.\d+
就可以了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-17 19:50 | 显示全部楼层
本帖最后由 liu-aguang 于 2019-11-17 19:55 编辑
aoe1981 发表于 2019-11-17 15:57
回复56楼。
关于浮点数匹配,我测试的结果是:
56,28

1. 如果存在你所列的浮点数形式,可以加以一个括号:[+-]?(\d+(\.\d+)?|\.\d+)。
2. 你提供的正则在匹配效率上要差一些:即在文本中不是数字的每个位置上要测试4次才能排除。
3. 匹配小数部分最好作为整体(\.\d+)?检测。避免得到一些可能的意外匹配结果:如某文本中一数字后刚好有一个英文句号。
写正则不但要考虑能匹配什么,更重要的是要考虑不能匹配什么。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-12-22 15:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-12-25 08:12 | 显示全部楼层
老师您好!我有EXCEL数据转换WORD的问题想求教,可以加我QQ吗?我的QQ号是645285173

TA的精华主题

TA的得分主题

发表于 2019-12-30 15:01 | 显示全部楼层
大佬看到你在论坛上的帖子,能不能帮看看如何把DAT数据导入到Excel里自动分列 非常感谢  附件我上传了   谢谢

110.zip

1.09 KB, 下载次数: 5

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-30 20:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ayin277974609 发表于 2019-12-30 15:01
大佬看到你在论坛上的帖子,能不能帮看看如何把DAT数据导入到Excel里自动分列 非常感谢  附件我上传了   谢 ...

不必用VBA代码。直接用excel中“数据”-“自文本”导入表格。分隔符是“|”。

TA的精华主题

TA的得分主题

发表于 2019-12-31 07:37 | 显示全部楼层
liu-aguang 发表于 2019-12-30 20:42
不必用VBA代码。直接用excel中“数据”-“自文本”导入表格。分隔符是“|”。

用文件导入的话像 “M5|Adr “这种就分到一个单元格里面了 还需要手动分列 实际需要的是这种分成3列“M5” ,"|","Adr"

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-31 08:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ayin277974609 发表于 2019-12-31 07:37
用文件导入的话像 “M5|Adr “这种就分到一个单元格里面了 还需要手动分列 实际需要的是这种分成3列“M5 ...

原文本是用“|“分隔的,导入excel时选择自定义用”|“作分隔线,自然就分到了不同单元格。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 04:13 , Processed in 0.040846 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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