Word 查找/替换 应用
- "查找和替换查找阅读突出显示":将查找到的结果突出显示,即,使用"文件字体文本突出显示颜色"高亮结果,但仅影响阅读'视图',不改变文档,在下一次打开"查找和替换"时自动"清除突出显示"。
- 可以不关闭"查找和替换"窗口,多次指定"查找内容"并"阅读突出显示"。每次可指定不同的"文本突出显示颜色"。
- 上述"查找",可以替换为"查找和替换替换","替换为"的值为"^&"(激活"替换为"文本框后底部的"替换"标签组"特殊格式查找内容"),并"突出显示"("替换"标签组"格式突出显示")。
- 可以不关闭"查找和替换"窗口,先"查找"标签卡-"阅读突出显示",再"替换"标签卡进行筛选/过滤("查找内容"的"格式"设置为"突出显示/非突出显示")。
- "替换为"空时,需"不限定格式"("替换"标签组"不限定格式")。
- "搜索选项使用通配符"时,注意对'通配符'({}、()、[])进行转义()。
举例
原始:替换结果:
查找(突出显示)
注意:
-
- 换行符;
- "查找阅读突出显示"操作状态易丢失/复位,建议直接"替换"为'突出显示'格式。
参考:
- word文档中如何批量将所有高亮显示部分提取出来-百度经验 (baidu.com)
- 测试未成功,涉及Ctrl+F9(插入域)。
其他:
Word中不方便,不如在其他支持正则的编辑器里操作,脚本化最好。
附AHK/autohotkey脚本
1 ; WeChat中tab可在文本框间导航,不可导航选择项 2 #SingleInstance,force 3 pcre_callout:="RC" 4 ; RegExMatch("C)..",.. or RegExMatch("(..)(?CRC)..",.. 5 Msgbox % "激活Word,全选答案,按F2分析答案;`n激活微信浏览器,激活文本框,按F2依据分析顺序填入备选答案,并跳转下一个文本框;`nF1/Shift F1在当前文本框切换下/上一个备选答案,`n选择题需手动点选,按F1或F2在鼠标处显示答案;`n及时激活文本框,否则可能覆盖焦点文本(撤销,或Shift F1回滚备选答案);`n其他窗口下,F2退出程序" 6 return 7 F2::exitapp 8 #IfWinActive ahk_exe SciTE.exe 9 F1:: 10 Send {F5} 11 return 12 F2:: 13 ExitApp 14 #IfWinActive ahk_exe WeChat.exe 15 F2:: 16 sel:=c() ;selection 17 if(sel==r[r.Length()].Value) 18 Send {Tab} 19 F1:: 20 begin: 21 ;{ 22 ;Send % StrGet(&s,"cp0") ;搈? 23 ;Send % StrGet(&s,"CP936") ;搈? 24 ;Send % StrGet(&s,"UTF-8") ;?m?? 25 ;Send % StrGet(&s) ;涓? 26 ;Send % StrGet(s) ;nothing 27 ;script should be UTF-8 28 ;} 29 if(not o[1].Value){ 30 Tooltip Done 31 return 32 } 33 Send ^a 34 if s 35 SendInput % s 36 else{ 37 c:=o.RemoveAt(1) 38 r.Push(c) 39 if(c.Type=="{"){ 40 SendInput % c.Value 41 } 42 Tooltip % c.No ": ..." c.Front "【" c.Value "】" c.Back 43 . (o[1].Value?"`n" o[1].No ": ..." o[1].Front "【" o[1].Value "】" o[1].Back 44 . (o[2].Value?"...`n" o[2].No ": ..." o[2].Front "【" o[2].Value "】" o[2].Back :"") 45 :"") 46 ,A_CaretX,A_CaretY 47 } 48 Send ^a 49 return 50 !F1:: 51 +F1:: 52 o.InsertAt(1,r.Pop()) 53 o.InsertAt(1,r.Pop()) 54 goto begin 55 return 56 #IfWinActive ahk_exe WINWORD.EXE 57 F1:: 58 s:=c() 59 o:=false 60 return 61 F2:: 62 ;parse word 63 s:=false 64 o:={} ;object 65 r:={} ;recyle 66 RegExMatch(c(),"xOs) " 67 . "(d+)、[^ ]*?" 68 . "(.....)" 69 . "([({])" 70 . "([^})]+)" 71 . "[)}]" 72 . "(.....)" . "(?CRC)") 73 Tooltip % o[1].No ": ..." o[1].Front "【" o[1].Value "】" o[1].Back 74 . (o[2].Value?"...`n" o[2].No ": ..." o[2].Front "【" o[2].Value "】" o[2].Back "...":"") 75 return 76 77 c(){ 78 local oc:=ClipboardAll 79 local s 80 Clipboard:="" 81 Send ^c 82 ClipWait,0 83 if(ErrorLevel!=1){ 84 s:=Clipboard 85 }else{ 86 s:="" 87 } 88 Clipboard:=oc 89 return s 90 } 91 RC(Match,CalloutNumber, FoundPos, Haystack, NeedleRegEx){ 92 global o 93 if(Match[4]=="试行") 94 return 1 95 o.Push({No:Match[1],Front:Match[2],Type:Match[3],Value:Match[4],Back:Match[5]}) 96 ;~ c:=o.Pop() 97 return 1 ;matching fails at the current point, but the testing of other matching possibilities goes ahead. 98 }