ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请教如何用正则表达式提取txt那两个关键字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-3-16 16:27 | 显示全部楼层 |阅读模式
本帖最后由 Mr_Ying 于 2015-3-18 15:55 编辑

基本解决,已经删帖!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-16 16:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-3-16 17:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub test()
  2.     Open ThisWorkbook.Path & "\示例文件0316.txt" For Input As #1
  3.     s = StrConv(InputB(LOF(1), #1), vbUnicode)
  4.     Close #1
  5.     Set regx = CreateObject("vbscript.regexp")
  6.     regx.Pattern = "发信人:\s*([\w-]+)|--[\s\S]+?FROM:\s*([^]]*)"
  7.     regx.Global = True
  8.     Set mh = regx.Execute(s)
  9.     [a1] = mh(0).submatches(0)
  10.     [b1] = mh(1).submatches(1)
  11. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-16 18:35 | 显示全部楼层
本帖最后由 Mr_Ying 于 2015-3-18 16:00 编辑

基本已解决

TA的精华主题

TA的得分主题

发表于 2015-3-16 18:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Mr_Ying 发表于 2015-3-16 18:35
谢谢您的回复,但是遇到这样的文本还是会有问题,请帮忙修改!

要以这个特殊”--“来设置条件,它的属 ...
  1. Sub test()
  2.     Open ThisWorkbook.Path & "\示例文件0316.txt" For Input As #1
  3.     s = StrConv(InputB(LOF(1), #1), vbUnicode)
  4.     Close #1
  5.     Set regx = CreateObject("vbscript.regexp")
  6.     regx.Pattern = "发信人:\s*([\w-]+)|^--[\s\S]+?(\d+(\.[\d*]+){3})"
  7.     regx.Global = True
  8.     regx.MultiLine = True
  9.     Set mh = regx.Execute(s)
  10.     [a1] = mh(0).submatches(0)
  11.     [b1] = mh(1).submatches(1)
  12. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-16 20:16 | 显示全部楼层
本帖最后由 Mr_Ying 于 2015-3-16 21:55 编辑

已经解决!

TA的精华主题

TA的得分主题

发表于 2015-3-16 20:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Mr_Ying 发表于 2015-3-16 20:16
示例文件3:
求搞一个批量动作,我自己试着for each in ....next调了半天没成功。

自己再仔细观察文本,并非符合所给规律.如:以下情形提取哪个IP?

● 【推荐】 AirmanAtSMTH 桑普多利亚VS那不勒斯、 发信人: AirmanAtSMTH (Airmansmth), 信区: Bet
标  题: 【推荐】 AirmanAtSMTH 桑普多利亚VS那不勒斯、 ,赢盘方:桑普多
发信站: 水木社区 (Mon Dec  1 20:03:11 2014), 站内  [累计积分奖励: 20/0]

竞猜场次:
桑普多利亚VS那不勒斯、

推荐选项:
桑普多利亚

初始赔率:
3.35

推荐理由:
桑普本赛季状态相当不错,尤其主场战绩4胜2平保持不败。那不勒斯虽然客场战绩不错3胜
2平1负,且两队相互战绩占优有心里优势,按正常应该可不输,但问题是3天前那不勒斯刚
刚打完欧联杯客场远征捷克,仅仅收获平局,身心皆不在很好的状态,对于双线作战那不勒
斯这种队伍难以有足够的板凳深度轮换兼顾两边,加之桑普已经休息一周,状态又正佳,看
好桑普以逸待劳不败,推荐胜。可分注防平。

本人下注积分:
1500


--
水木股板微群http://new.q.weibo.com/891132/invitation=11Dcyos-16abf
飞人看盘http://blog.sina.com.cn/airmanstock
飞人微博http://weibo.com/i/airmanstock
水木文集http://airmansmth.mysmth.net
Airman个人资金流向与看盘分析贴汇总,仅供记录个人观点看法之用,没有对任何人推荐
指导作用。网友提问个股与资金研判仅供1-3天内参考。过期作废勿刻舟求剑。特此声明。


※ 修改:·AirmanAtSMTH 于 Dec  1 20:04:29 2014 修改本文·[FROM: 111.206.20.*]
※ 来源:·水木社区 newsmth.net·[FROM: 111.206.20.*]

TA的精华主题

TA的得分主题

发表于 2015-3-16 20:50 | 显示全部楼层
再如下列情形该如何对应:
Re: 【推荐】 Illarramendi 桑普多利亚VS那不勒斯 发信人: AirmanAtSMTH (Airmansmth), 信区: Bet
标  题: Re: 【推荐】 Illarramendi 桑普多利亚VS那不勒斯 ,赢盘方:平局
发信站: 水木社区 (Mon Dec  1 20:14:49 2014), 站内

太好了,我桑获胜有望了
【 在 Illarramendi (标题一定要长长长) 的大作中提到: 】
: 标  题: 【推荐】 Illarramendi 桑普多利亚VS那不勒斯 ,赢盘方:平局
: 发信站: 水木社区 (Mon Dec  1 20:10:53 2014), 站内
:
: 竞猜场次:
: 桑普多利亚 vs 那不勒斯
:
: 推荐选项:
: 平局
:
: 初始赔率:
: 3.35
:
: 推荐理由:
: 桑普多利亚跟那不勒斯历史交锋3连败了,有止跌反弹可能。8月25日后,桑普多利亚只输
给国米一场球;那不勒斯4月13日以来,只输了乌鸡和飞驴。考虑那不勒斯本赛季客场进球
数一般,相信不会给桑普造成太大威胁,兼顾历史战绩,推荐平局。比分预计2:2或3:3。
:
: 本人下注积分:
: 308
:
:
: --
: 发信人: wyattearp (wyattearp), 信区: FamilyLife
: 标  题: Re: 有的女人真tm sb
: 发信站: 水木社区 (Thu Nov  6 07:49:16 2014), 站内
: 你哪看出来我没做的?烤箱高压锅蒸锅面包机料理机 都我买的 西餐中餐蛋糕吐司面包馒
头烤羊腿牛尾蹄膀红虾乳猪 一顿3、4个菜 8~10个荤素 粗粮果汁 晚8点到12点都做过饭
你也这么搞?
:
:
: ※ 修改:·Illarramendi 于 Dec  1 20:11:13 2014 修改本文·[FROM: 218.240.5.*]
: ※ 来源:·水木社区 newsmth.net·[FROM: 218.240.5.*]


--
水木股板微群http://new.q.weibo.com/891132/invitation=11Dcyos-16abf
飞人看盘http://blog.sina.com.cn/airmanstock
飞人微博http://weibo.com/i/airmanstock
水木文集http://airmansmth.mysmth.net
Airman个人资金流向与看盘分析贴汇总,仅供记录个人观点看法之用,没有对任何人推荐
指导作用。网友提问个股与资金研判仅供1-3天内参考。过期作废勿刻舟求剑。特此声明。


※ 来源:·水木社区 newsmth.net·[FROM: 111.206.20.*]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-16 20:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liu-aguang 发表于 2015-3-16 20:47
自己再仔细观察文本,并非符合所给规律.如:以下情形提取哪个IP?

● 【推荐】 AirmanAtSMTH 桑普多利亚 ...

对应111.206.20.*
就是单独--后面是任意一个吧,目前只能这样。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-16 20:58 | 显示全部楼层
本帖最后由 Mr_Ying 于 2015-3-16 21:57 编辑

问题已经解决!

点评

前面有两处出现不同"发信人",该如何对应?本人只是粗略观察了一下一部分文本,不知其中还有多少例外及处理方式.  发表于 2015-3-16 21:09
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 14:18 , Processed in 0.029135 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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