比如:所有的"革命历史小说"中是英文引号,英文引号不分左右引号,替换为“革命历史小说”,英文引号换成中文了,但是中间的文字(革命历史小说)不变。
下文分为3部分:固定字英文引号如何替换,wps中如何操作替换,msword中如何操作替换。
更新至:2022年1月10日,当前wps版本可以直接进行替换。
即查找:"(*)"
替换:“\1”
对于固定文字的引文引号按照下文操作
步骤一、打开查找替换(ctrl+h),点击更多,勾选使用通配符
查找:"(革命历史小说)"
替换:“\1”
注意:查找种的是引文引号,替换中的是中文引号,如果在窗口看不出来,可以先在文档输入,再复制到查找替换窗口中。
请点击输入图片
步骤二、点击全部替换
就会变成下图的样子
扩展:
()是表达式的意思,\1是把这个括号中的文字原封不动的下来,再在它的两边加中文引号,即可实现目的
对于任意文字,且操作环境为wps来说,按照下方步骤操作
如果是替换多个内容,文字不相同,而且根据题主楼下的图片显示,操作软件是wps,那么按照下面的方式进行替换。
如图所示,在wps中,想要替换英文引号
步骤一、
依次点击文件-选项-编辑-取消勾选直引号替换为弯引号
步骤二、
打开查找替换,点击高级搜索,勾选使用通配符
查找:"*"
替换:“^&”
点击全部替换
步骤三、
然后取消勾选使用通配符
查找:"
替换:空
全部替换,即可
对于微软word来说,按照下文进行操作
如图所示,我们要替换引文引号为中文引号
打开查找替换,勾选使用通配符
查找:"(*)"
替换:“\1”
点击全部替换,即可
追问只是拿革命历史小说举了个例子,实际引号中内容千奇百怪,文字也有20W字,有没有通用的方法
追答把中间的文字,换成*
如果你是wps的话,就不能这么操作了,需要分步操作,待我修改一番答案
答案已更新,思路是先把引号都换为右引号,再把本应该是左引号的替换成左引号。
谢谢答主,已试,小段文字可以实现,但是全文整体替换,部分会出现““””(全为中文)的情况,并且想查找突出显示文中全部"(英文引号)时,老是“(中文引号)也全突出显示了,不知道什么原因
一、部分变成连续的中文引号,可能原来就是中文引号。
我们在步骤2使用通配符的时候,查找英文引号",会把中英文的引号全部找到。为了防止这种情况,可以增加新的步骤1.5。
步骤1、跟上文一样
步骤1.5 查找替换,使用通配符,查找英文引号,替换为英文引号(查找:",替换为:")
这一步可以把文中所有的中英文引号变成英文引号
步骤2和步骤3和上文一样
二、突出显示的时候,如果想突出显示所有的英文引号,要取消勾选使用通配符
如果取消了“直引号替换为弯引号”前面的勾仍然出错,那大概就是字体问题了。
这个页面看到的雅黑字体就是这样,看起来都是差不多的斜双杠。其实放大了看还是有区别的,前引号上小下大,后引号上大下小。
给你一段 word 宏代码,不考虑“直引号替换为弯引号”前面的勾是否取消。可以用在不太长的文档中,自动处理全文单双引号,跨段的双引号也能正确处理。
注意:本段代码中,英文单引号是不处理的,单引号跨段也不处理。如果是处理太长的文档会比较卡,需要另写代码,只在框选区域内执行。
此外,把代码粘贴到宏编辑器中时,系统可能会把单引号部分的中文单引号换成英文单引号,导致单引号处理出错,需要在编辑器中手动修改几处单引号。在编辑器里代码中有淡绿色文本提示,提示文本可以删除。
Sub 引号()
Application.ScreenUpdating = False
Selection.WholeStory
With ActiveDocument.Content.Find
.Execute FindText:="‘", replacewith:="’", Replace:=wdReplaceAll
.Execute FindText:=ChrW(8221), replacewith:=ChrW(8220), Replace:=wdReplaceAll' 本行FindText:="‘"中的单引号换成中文前单引号,replacewith:="’"中的单引号换成中文后单引号
End With
Dim P&
With Selection
P = .Paragraphs.Count
End With
Text = ChrW(8220)
With ActiveDocument.Content.Find
Do While .Execute(FindText:=Text) = True
Y = Y + 1
Loop
End With
With Selection.Find
.Text = "’(*)’"'两处都换成中文后单引号
.Replacement.Text = "‘\1’"'配对中文单引号
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.HomeKey unit:=wdStory
For N = 1 To P
Selection.Expand wdParagraph
With Selection.Find
.Text = ChrW(8220) & "(*)" & ChrW(8220)
.Replacement.Text = ChrW(8220) & "\1" & ChrW(8221)
End With
Selection.Find.Execute Replace:=wdReplaceAll,Wrap:=wdFindStop
Selection.MoveDown unit:=wdParagraph
Next N
Selection.HomeKey unit:=wdStory
For S = 1 To Y
With Selection.Find
.Text = "[" & ChrW(8220) & ChrW(8221) & "]"
.Replacement.Text = "^&"
.Forward = True
.MatchWildcards = True
End With
Selection.Find.Execute
Selection.Range.CharacterWidth = wdWidthFullWidth
Next S
Selection.HomeKey unit:=wdStory
End Sub