ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 【求助】查找WORD中特定字符串前后的字符并保存

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-13 16:07 | 显示全部楼层 |阅读模式
新手请教一个问题,向从一个WORD中,找出特定字符串前后的词,并保存,如附件中,
通过WORD中逐个查找\upcite{,得到它前后的词为Aubin和A78;
然后在查找\bibitem{A78}后的第一个词并进行判断,如果也时Aubin,则将\upcite{前Aubin标注为绿色,否则标为红色。
完成在查找下一个\upcite{,并进行相同操作,直到WORD全部查找完成。

TEST.rar

10.56 KB, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-14 14:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-2-14 15:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-2-14 15:24 | 显示全部楼层
本帖最后由 weiyingde 于 2020-2-16 22:15 编辑

看是不是这样:
Sub 查找()
Set RegEx = CreateObject("VBscript.RegExp")
    RegEx.Pattern = "([A-Za-z]+)(\s\\upcite\{)([A-Z1-9]+)"
    RegEx.Global = True
    RegEx.MultiLine = True
    With ActiveDocument
         sr = .Content.Text
         Set mh = RegEx.Execute(sr)
         For Each mt In mh
          N = N + 1
         sr1 = sr1 & mt.submatches(0) & Space(4) & mt.submatches(2) & Chr(13)
          MsgBox mt
         Next
         .Content.InsertAfter Chr(13) & "查到的有" & 2 * N & "个:" & Chr(13) & sr1
    End With
    sr = ""
End Sub

TEST.rar

18.9 KB, 下载次数: 5

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-14 15:35 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-14 20:09 | 显示全部楼层
weiyingde 发表于 2020-2-14 15:24
看是不是这样:
Sub 查找()
Set RegEx = CreateObject("VBscript.RegExp")

谢谢,很强大,我吸收吸收再修改一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-15 12:04 | 显示全部楼层
weiyingde 发表于 2020-2-14 15:24
看是不是这样:
Sub 查找()
Set RegEx = CreateObject("VBscript.RegExp")

大神,您给我的我细细学习了一下,单层的使用正则我已经理解了,但是如果按照我上面的说法,想要两层嵌套的去查找是否可以实现

即第一次使用RegEx.Pattern = "([A-Za-z]+)(\s\\upcite\{)([A-Za-z1-9]+)"去判断,每次判断到的语句,计算出
mt.submatches(2),如上文为A78,然后再用另一个正则去匹配出\bibitem{A78} Aubin,词中的Aubin和第一次正则后的mt.submatches(0)比对,相同原文标绿色,不相同标红色;

正则在判断的时候都是从前至后的,这种遍历可以嵌套吗?个人想着比较混乱,求解

TA的精华主题

TA的得分主题

发表于 2020-2-15 13:13 | 显示全部楼层
fypm1009 发表于 2020-2-15 12:04
大神,您给我的我细细学习了一下,单层的使用正则我已经理解了,但是如果按照我上面的说法,想要两层嵌套 ...

可以实现,稍复杂一些,有时间给你写一个。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-15 23:15 | 显示全部楼层
weiyingde 发表于 2020-2-15 13:13
可以实现,稍复杂一些,有时间给你写一个。

谢谢,受累了  

TA的精华主题

TA的得分主题

发表于 2020-2-16 22:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 weiyingde 于 2020-2-16 22:20 编辑

你这个例子看不出效果,因为四个都不相同,换个例子或许可行。思路是第一次将找到的各项装入字典,
第二次再以字典中与找到的各项进行匹配,如果相同则改变字色。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-26 12:45 , Processed in 0.054589 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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