Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5142449
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类: WINDOWS

2012-02-26 15:59:51

一、个人笔记

1、在使用通配符的情况下,^p不可用,可用^13代替;

WORD中^13与^p的区别

首先这两个东西肯定不是完全一样的。

在应用方面,我个人的感觉,查找内容里尽量用^13,而替换为里尽量用^p。

这样会最大限度地减少麻烦!

^13和^p在VBA中的VBA.ASC值是一致的,它们都返回13,因此,在通配符查找过程中,以^13代替^p。

^13在正常的Word文件中,或者以Word打开的文件中,均被Word转换为^p,段落标记是一个段落所有样式和格式的信息载体。

^13广泛存在于各类程序中,如文本文件、MSN中、QQ等及时通讯工具中,当它们被复制到Word程序时,有可能因转换问题而引起Word中出现^13,如果我们以复制,选择性粘贴的方式进行粘贴时,可以转换为^p,当然可以使用查找与替换。

存在于WORD中的^13(非段落标记),可以在^13(状同段落标记一致)后面使用光标定位,另外在工具/字数统计中的段落数与实际“段落”不符。

2、<>查找字符串,例如此例中,关键词跟“<江山>*多娇”效果一样。


3、指定字符之一:“[]”框内的字符可以是指定要查找的字符之一,如:
输入“[中美]国”就可以找到“中国”、“美国”。又如:
输入“th[iu]g”,就可查找到“thigh”和“thug”。
输入“[学硕博]士”,查找到的将会是学士、士、硕士、博士。
输入“[大中小]学”可以查找到“大学”、“中学”或“小学”,但不查找“求学”、“开学”等。
输入“[高矮]个”的话,Word查找工具就可以找到“高个”、“矮个”等内容。


4、指定范围内的任意单个字符:“[x-x]”可以指定某一范围内的任意单个字符,如:
输入“[a-e]ay”就可以找到“bay”、“day”等字符,要注意的是指定范围内的字符必须用升序。用升序。如:
输入“[a-c]mend”的话,Word查找工具就可以找到“amend”、“bmend”、“cmend”等字符内容。


5、排除指定范围内的任意单个字符:“[!x-x]”可以用来排除指定范围内的任意单个字符,如:
输入“[!c-f]”就可以找到“bay”、“gay”、“lay”等字符,但是不等字符,但是不会找到“cay”、“day”等字符。要注意范围必须用升序。
又如:
输入“[!a-c]”的话,word程序就可以找到“good”、“see”、“these”等目标字符,而所有包含字符a、b、c之类的内容都不会在查找结果中出现。
又如:
输入“m[!a]st”,用,用来查找“mist”和“most”不会查找“mast”。
输入“[!a]n”,查到的将会是除an以外的所有可能组合如:合如:in、on等。

6、指定前一字符的个数:“{n}”可以用来指定要查找的字符中包含前一字符的个数,如:
输入“cho{1}se”就是说包含1个前一字符“o”,可以找到“chose”,输入“cho{2}se”就是说包含2个前一字符“o”,可以找到,“choose”。
又如:
输入“lit{1}le”就是说包含1个前一字符“t”,可以找到“litle”。
输入“lit{2}le”就是说包含2个前一字符“t”,可以找到“little”。
输入“te{2}n”,表示查找“teen”而不会查找“ten”。
输入“of{2}ice”,查找到的将会是office。


7、指定前一字符、指定前一字符数范围:“{x,x}”可以用指定要查找字符中前一字符数范围,如:
输入“cho{1,2}”,则说明包含前一字符“o”数目范围是1-2个,则可以找到“chose”、“choose”。


8、一个以上的前一字符:“@”可以用来指定要查找字符中包含一个以上的前一字符,如:
输入“cho@se”,就可以找到,“chose”、“choose”等字符。


9、指定起始字符串:“<”可以用来指定要查找字符中的起始字符串,如:
输入“输入“


10、指定结尾字符串:“>”可以用来指定要查找字符中的结尾字符串,如:
输入“er>”,就说明要查找的字符的结尾字符为“er”,可以找到“ver”、“her”、“lover”等等。
输入“en>”,就说明要查找到以“en”结尾的所有目标对象,可能找到“ten”、“pen”、“men”
输入“up>”,就说明要查找到以“up”结尾的所有目标对象,例如会找到“setup”、“cup”等等。


11、表达式查找:“()”,尤其用于多个关键词的组合查找。
键入“(America)(China)”,在“替换为”中键入“\2\1”,Word找到“AmericaChina”并替换为“ChinaAmerica”。

另外为了更精确的查找,你还可以把以上的通配符联合起来使用,如:
输 入“<(ag)*(er)>”则表示查找所有以“ag”开头并且以“er”结尾的单词,注意这时需要用括号将来区分开不同的查找规则。最后还 要注意如果要查找已经被定义为通配符的字符,如“*”、“?”等字符,必须在该字符前面加上反斜杠“\”,如:输入“\*”则表示查找字符“*”。

二、使用代码搜索

1.可以在“查找内容”或“替换为”框中使用的代码

段落标记

键入 ^p(选中“使用通配符”复选框时在“查找内容”框中无效)或键入 ^13

制表符

键入 ^t 或键入 ^9

ASCII 字符

键入 ^nnn,其中 nnn 是字符代码

ANSI Character

键入^0nnn,其中nnn是字符代码

长划线(—)

键入^+

短划线(–)

键入^=

脱字号

键入^^

手动换行符

键入^l或键入^11

分栏符

键入^n或键入^14

分页符或分节符

键入^12(替换时,插入分页符)

手动分页符

键入^m(当选中“使用通配符”复选框时,还将查找或替换分节符)

不间断空格

键入^s

不间断连字符

键入^~

可选连字符

键入^-

2.只能在“查找内容”框中使用的代码(选中“使用通配符”复选框时)

图片或图形(仅嵌入)

键入^g

3.只能在“查找内容”框中使用的代码(清除“使用通配符”复选框时)

任意字符

键入^?

任意数字

键入^#

任意字

键入^$

Unicode字符

键入^Unnnn,其中“nnnn”是字符代码

图片或图形(仅嵌入)

键入^1

脚注标记

键入^f或键入^2

尾注标记

键入^e

键入^d

正在打开域大括号(当域代码可见时)

键入^19

正在关闭域大括号(当域代码可见时)

键入^21

批注

键入^a或键入^5

分节符

键入^b

全角空格(Unicode)

键入^u8195

半角空格(Unicode)

键入^u8194

白色空格

键入^w(可以是常规空格、不间断空格以及制表符的任意组合)

4.只能在“替换为”框中使用的代码

“Windows剪贴板”的内容

键入^c

“查找内容”框的内容

键入^&

注释

如果包含可选连字符代码,Word只会找到在指定位置带有可选连字符的文字。如果省略可选连字符代码,Word将找到所有匹配的文字,包括带有可选连字符的文字。

如果要查找域,必须显示域代码(域代码:为占位符文本,显示数据源的指定信息的显示位置;或者为生成字段结果的字段中的元素。域代码包括字段字符、 字段类型和指令)。若要在显示域代码和域结果(域结果:当Microsoft Word 执行域指令时,在文档中插入的文字或图形。在打印文档或隐藏域代码时,将以域结果替换域代码。)之间切换,请单击该域,然后按 Shift+F9。若要显示或隐藏文档中所有域的域代码,请按 Alt+F9。

在查找图形时,Word 只查找嵌入图形,而不能查找浮动图形。在默认情况下,Word 将导入的图形作为嵌入图形插入,但是可以将浮动图形转换为嵌入图形。

如要查找使用 Unicode 值的字符,请选择“区分大小写”复选框。如果清除“区分大小写”复选框,Word 将搜索该值指定的所有大写字符和小写字符的实例。

 

 

连续重复的字*******************************************************

我发现在查找时,如果使用*与?的后面接着跟{}时,可以不用逗号。

如: (?{1})\1     (?{1,})\1    (*{1})\1     (*{1,})\1    这四个是查找的效果是一样的。

注意:除?与*之外的其他字符必须使用正规的方法。

查找重复段落*****************************************************

1、把每个段落标记替换为二个(查找内容“^p”,替换为“^p^p”)

2、把光标放在文章开始处(Ctrl+Home),因为WORD默认是从光标开始处查找。或者全选文档(Ctrl+A)。

[正式开始]

如果是连续的重复段落:

点击:编辑-替换

勾选通配符

查找内容:(^13[!^13]@^13){2,}

替换为:\1

全部替换

重复一下,看看有没有替换干净(一个段落一般不会重复255次以上吧,呵呵),不行就再来几次,直到

替换处数为0。

 

如果是不连续的重复段落:

点击:编辑-替换

勾选通配符

查找内容:(^13[!^13]@^13)(*)\1

替换为:^13\1\2

^13表示段落标记,[!]表示“非”,[!^13]表示段落标记之外的任意单个字符;@表示一个以上的前一字符或表达式,它跟[!^13]一起表 示一个以上的段落标记之外的字符,^13[!^13]@^13也就是包含前后段落标记的、有任意个字符的、非空的段落;用圆括号将其括起来 (^13[!^13]@^13),意思是将这一部分加以标识,这是我们标识的第一部分,下面替换为框中的\1代表的就是它!


{n,}代表至少 n 个前一字符或表达式,那么{2,}当然就表示2个以上这样的段落(括号括起来的部分),注意,应该是完全相同的段落!注意这里的{2,}不可以用@来替 代,如果用@的话,因为它也包括“一个”的情况,那么在执行的时候,所有的不重复的段落也会被它自己替换一遍,执行效率要大打折扣!
题外话:正则表达式里要是有一个代码表示“两个或两个以上”的意思,该多好啊!
马马冠军啊了解马马
另外,这段代码里,[!^13]这个思想我自己觉得用的比较好!电脑也好判断啊,呵呵!

查找重复字************************

替换——选中高级的使用通配符——查找替换内容输入按以下说明。

([! ])(*)\1  或者 ([! ])*\1或者 (?)*\1或者 (??])*\1

查找到的是相同字符和他们中间的部分。\1的内容是第一个()里面的内容,而且第一个()不能省,*可以改为一个或多个?,意义各不同。替换可以为\1或\2等。

()的用处是把查到的属于()内的内容标志为n(n为1,2,3……),并可以用\1来指代。
阅读(3196) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~