收藏 分享(赏)

正则表达式和自定义替换.docx

上传人:weiwoduzun 文档编号:1802034 上传时间:2018-08-24 格式:DOCX 页数:40 大小:225.57KB
下载 相关 举报
正则表达式和自定义替换.docx_第1页
第1页 / 共40页
正则表达式和自定义替换.docx_第2页
第2页 / 共40页
正则表达式和自定义替换.docx_第3页
第3页 / 共40页
正则表达式和自定义替换.docx_第4页
第4页 / 共40页
正则表达式和自定义替换.docx_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、1正则表达式和自定义替换目 录版权信息1. 概述2. 正则表达式的构成2.1 特殊符号2.2 通配符2.3 字符集2.4 子表达式2.5 重复指示符3. 替换表达式4. 自定义替换表功能4.1 在查找替换中使用自定义替换表5. 应用举例(一)5.1 应用举例(二)5.2 应用举例(三)一 概述 从 4.5 版起,TextPro 在查找/替换中支持正则表达式。正则表达式是一种非常强大的搜索功能,通过与 TextPro 的其它功能相结合,可以方便地实现许多复杂的文本处理工作。 正则表达式原本是形式语言理论中的概念,与编译器的构造有密切的联系。但是作为一个应用软件的用户,我们没有必要去细究正则表达式

2、的严格定义和处理方法。本文将从实用的角度出发,阐述在2TextPro 中引入正则表达式的目的、正则表达式的命令格式,以及如何利用正则表达式完成一些实际的文本处理工作。 我们在处理文本时,经常会遇到一些具有某种特定格式,或者说满足某种规则的文本。比如,一个无符号的整数由一连串的数字构成,而一个 Email 地址的格式则是“用户名 主机名” ,其中用户名是一串字母或数字,主机名则是由若干个由“.”分隔的字母数字串。正则表达式就是用来指定这种规则的。如果某个字符串满足正则表达式指定的规则,则称该字符串为正则表达式的一个“匹配串” 。二 正则表达式的构成 为了方便理解,让我们先来看看大家比较熟悉的数学

3、表达式,“(x+3)*2+y”是一个典型的数学表达式。一个数学表达式由若干个“项”组成, “项”与“项”之间用加号或减号相连;这里“(x+3)*2”和“y”分别是两个项。每个项又由若干个“因子”组成,因子之间用乘号或除号相连;这里第一个项有两个因子“(x+3)”和“2” ,而第二个项只有一个因子“y” 。每个因子可以是一个简单的数,一个代数变量,也可以是放在括号里面的另一个表达式。对于最后一种情况,括号中的表达式称为“子表达式” ;这里“x+3 ”就是一个子表达式。 正则表达式的结构与数学表达式很相似。与数学表达式的“项”相对应,正则表达式由若干个“分支”构成, “分支”之间用符号“|”相连。

4、从逻辑上讲,分支之间是一种“或”的关系,一个字符串只要与正则表达式中的任何一个分支相匹配,这个字符串就与整个正则表达式相匹配。比如, “第三人称代词”可以用正则表达式表示为“他| 她| 它 |他们|她们 |它们” 。 与数学表达式的“因子”相对应,构成正则表达式“分支”的部件称为“原子” 。 “原子”与“原子”之间没有任何符号相连。从逻辑上讲,原子之间是串接的关系,一个字符串必须与各个原子依次相匹3配,才算与这个分支相匹配。比如在上面的例子中,分支“他们”由两个原子“他”和“们”组成。 正则表达式的本质是它的“原子”可以有多种不同的形式。前面的例子是最简单的情形,即每个原子由一个普通字符组成。

5、除此以外,“原子”还可以是特殊符号、通配符、字符集以及子表达式。2.1特殊符号可以作为特殊符号的原子有: 匹配行首。例如, “他”匹配出现在行首的“他”字。值得注意的是,这个符号仅仅表示“行首”这个位置,与它相匹配的字符串长度为 0;$ 匹配行末。与“”相似,它仅表示“行末”这个位置。例如, “。$”匹配出现在行末的句号; 匹配词尾。词尾是指紧接在字母数字或下划线之后的第一个非字母数字下划线,任一汉字之后也属于词尾。词尾的匹配长度也是 0; t TAB 字符;2.2通配符通配符是用一个符号(或几个符号组合) 来匹配某一类满足条件的字符。可以使用通配符来查找字符是正则表达式的一大特点。TextP

6、ro 支持下列通配符( 注意大小写的区别):以半角为主的部分: .(句点 ) 匹配任意半角或全角字符; a 匹配任意英文字母; a 匹配除字母外的任意半角或全角字符; 4d 匹配任意数字; d 匹配除数字外的任意半角或全角字符; h 匹配任意词首字符 (字母及下划线) ; h 匹配除字母及下划线以外的任意字符; l 匹配任意小写字母; l 匹配除小写字母外的任意半角或全角字符; o 匹配任意八进制数字 (0-7); o 匹配除八进制数字外的任意字符; p 匹配任意半角标点符号(非空格、字母、数字的可打印 ASCII 字符); p 匹配除半角标点以外的任意半角或全角字符; s 匹配任意空白字符(

7、半角空格、TAB) ; s 匹配任意非空白的半角或全角字符; u 匹配任意大写字母; u 匹配除大写字母外的任意半角或全角字符; w 匹配可成词的字符(字母、数字及下划线); w 匹配成词字符 (字母、数字及下划线 )外的任意半角或全角字符; x 匹配任意十六进制数字 (0-9, a-f, A-F); x 匹配除十六进制数字外的任意半角或全角字符;以全角为主的部分: f 匹配除 ASCII 字符外的任意全角字符; f 匹配任意 ASCII 字符; A 匹配任意全角 ASCII 字符; b 匹配收录在 BIG5 码集中的任意字符; b 匹配未收录在 BIG5 码集中的任意字符; c 匹配任意汉字

8、( 不包括符号); c 匹配除汉字外的任意全角字符; 5D 匹配地支字符(子丑寅卯); g 匹配收录在 GBK 码集中的任意字符; g 匹配未收录在 GBK 码集中的任意字符; G 匹配大写希腊字母 j 匹配日文片假名 J 匹配日文平假名 k 匹配小写希腊字母 m 匹配数学符号; n 匹配中文数字 (一二三四) ; N 匹配大写中文数字(壹贰叁肆); P 匹配全角标点符号; r 匹配小写俄文字母; R 匹配大写俄文字母; S 匹配罗马数字,带点、括号或圆圈的序号( ); T 匹配天干字符(甲乙丙丁); V 匹配竖排标点符号; y 匹配拼音字符; Y 匹配注音字符; Z 匹配制表字符;2.3 字

9、符集字符集是用一对方括号括起来的字符串,用以匹配字符集中的任何一个字符。比如“ 他她它 ”匹配单数任一第三人称代词“他” 、“她”或“它” 。如果方括号中的第一个字符是“,则匹配除指定字符外的任何其它字符。例如“ 我+$ ”匹配没有“ 我”字的整行,也可称为“查找不匹配的行” 。6分析:表示行首,我表示除“我”以外的任何字符,+ 表示多个这种匹配字符,$表示一直到行末。在字符集中,还可以用“-“表示字符的范围,例如“a-z”匹配任何小写字母。注意尽量不要用“-”表示汉字的范围,因为汉字并没有公认的次序,TextPro 目前是依据汉字的 Unicode 编码来确定范围的。如果两个汉字的编码相差很

10、大,将消耗大量的内存,运算也将非常缓慢。为了避免这种现象,TextPro 中限制表示范围的起始与终止汉字必须位于 Unicode 编码的同一行(row) 。如果字符集要包括字符“” 、 “”、 “-”或“ ”,可以在这些字符前加“” 。例如“xyz”匹配“, “x“,“y“或“z“。另外需要特别指出的是,前面所述的特殊字符及通配符,除了“t“和 “e“外,在字符集中均作为普通字符处理。 字符集的匹配速度比通配符慢,所以应该尽可能地使用通配符。例如要查找半角数字时,应该使用d ,而不要使用0-9 ,虽然后者也是正确的。2.4子表达式子表达式是指用一对括弧()括起来的另外一个正则表达式。使用子表达

11、式有两种主要的目的。一是改变匹配的优先级,例如“中|西文软件”匹配的是“中”或“西文软件” ,但是“(中|西) 文软件”匹配的是“中文软件”或“西文软件” 。 使用子表达式的另一个目的,是引用前面匹配到的内容。例如要查找形如“哈哈” 、 “嘻嘻”的叠字词,可以写“(c)1” 。这里“(c)”匹配任意汉字,而“1 ”则引用匹配到的内容。TextPro 允许在一个查找串包含最多 9 个子表达式,它们的匹配内容可以分别用“1 ”, “2”.“9”来加以引用。子表达式也可以嵌套另一个子表达式,子表达式左括号出现的序号为这个表达式的编号。7另外需要注意的是,只能引用已经匹配了的子表达式,象上面的例子不可

12、以写成“1(c)” ,同理,也不应该引用不同分支中的子表达式,因为一个正则表达式中只可能有一个分支被匹配。2.5重复指示符正则表达式的另外一个强大的功能是重复匹配的能力。前述的任何一种“原子”之后,都可以指定一个重复指示符。下面列出各种重复指示符:? 表示前一“原子”可有可无(重复 0 或 1 次)。例如 “我们? ”匹配 “我”或“ 我们” ; + 表示前一“原子”至少匹配一次。例如“d+”匹配任何一个无符号整数; * 表示前一“前子”重复匹配 0 或多次。例如“hw*”表示许多高级语言对“变量”的定义:以字母或下划线开头,后接任意多个字母数字或下划线; n 表示前一“原子”重复匹配 n 次

13、。例如“c 啦3”匹配“哗啦啦啦”或“呼啦啦啦”等; n,m 表示前一“原子”重复匹配 n 至 m 次,其中 nm,TextPro 将自动交换 m 与 n 的值; n, 至少重复匹配 n 次,相当于n,无穷大; ,m 至多重复匹配 m 次,相当于0,m ; 重复任意多次,相当于*。在前面所述的各种重复指示符中,如果重复的次数不定,TextPro将匹配尽可能长的目标串(但最多不超过 32767 次,这是 TextPro 内设定的上限) 。例如有一字符串“你好,我好,大家好” ,表达式“你.*好”将匹配整个字符串,而不是“你好”或“你好,我好” 。如果需要匹配尽可能短的目标串,可以采用前述的最后四

14、种形式,并在“”之后加上“-” 号。上例中的表达式如改为“你.-好” ,则匹配串为“你好” 。8-n,m 重复匹配 m 至 n 次,匹配次数尽可能少;-n, 至少重复匹配 n 次,匹配次数尽可能少;-,m 至多重复匹配 m 次,匹配次数尽可能少,相当于-0,m; - 重复任意多次,类似于 *,但匹配次数尽可能少。重复指示符只对紧邻在其前的“原子”起作用,例如“你好+ ”将匹配“你好” , “你好好”。但是不会匹配“你好你好” 。如果要重复匹配一组原子,可以使用括号(子表达式),如“(你好)+ ”就会匹配“你好你好” 。需要指出的是,重复指示符与引用子表达式具有不同的含义。重复指示符是重复“匹配

15、” ,至于匹配的内容则可以不同;而引用子表达式则是重复匹配的内容。例如, “d2”可以匹配任何一个两位数的整数,但是“(d)1”只能匹配“11” 、 “22”、 “33”等数字相同两位数。当然,也可以重复引用子表达式,如“(d)1*”可以匹配“2” ,“33”、 “111”等各位数全同的整数。如前所述,在正则表达式中,以下字符“*?+.()”具有特殊的含义。如果需要查找这些字符本身,可以在该字符前加一个反斜杠“”。例如查“def”可以输入“def” 。三 替换表达式3.1特殊字符在进行替换时,也可以在替换串中使用一些特殊字符。目前TextPro 支持的特殊字符有: n 插入回车符。可以用这个字

16、符把某些行分成两行或多行; b 向前删除一个字符。当这个字符位于替换串之首时,将删除匹配串之前的一个字符。若匹配串位于行首,将使匹配串所在行与前一行相合并; d 向后删除一个字符。当这个字符位于替换串之末时,9将删除匹配串之后的一个字符。若匹配串位于行末,将使匹配串所在行与下一行相合并; t 插入一个 TAB 字符; 也可以在替换串中引用查找串中的匹配到的子表达式。引用方法也是用“1” 、 “2”等。另外还可以用“ 0”来引用整个匹配到的字符串。3.2 替换函数 在替换串中还可以使用一组替换函数,来对查找到的内容做某种变换。替换函数的形式是f.,其中“ f”是函数名,它是一个半角英文字母。花括

17、号中的内容是函数的参数。例如,ua表示把“a”转换为大写。目前 TextPro 支持三个替换函数,在后继版本中逐步增加。 u 转换为大写 l 转换为小写 U 首字母大写 Sxx 替换表 /功能 S1, 第 1 个自定义替换表 S2, 第 2 个自定义替换表 S30, 第 30 个自定义替换表 SA, 简转繁 SB, 繁转简 SC, gbk 转 big5 SD, big5 转 gbk SE, 转全角 SF, 转半角 SG, 删除半角字符 SH, 括号嵌套转换 SI, 竖排符号横转 10替换函数的参数部分可以略去不写。如果略去,默认的参数是查找到的内容,即0。例如,要把文中所有英文单词的首字母大写

18、,可以查找“ ”,并替换为 “U0”,替换串也可以简写为“U”TextPro V6.5 用此功能可实现自定义替换表进行二次正则替换,即可对查找到第 n 对匹配的内容使用第 m 个自定义替换表进行二次正则替换。例如查找:.*,替换为: S3即可对查找到的 之间的内容进行自定义替换表 3 的操作。再如查找:(.*)(.*),替换:1S62即可对查找到的第 2 组匹配.*之间的内容进行自定义替换表6 的操作。四 自定义替换表功能 TextPro 4.5 以后提供了自定义替换表功能。所谓自定义替换,其实是一张替换表,它把某个字符串对应转换为另外一个字符串,比如把汉字转换为拼音。TextPro 6.x

19、将自定义替换表与正则替换表合并在一起,增加了后者的数量并能保存,并增加了查找的选项。替换表是一个文本文件,它的每一行指定一个转换关系。行由两栏组成,栏与栏之间用分隔符半角等号“= ”分开。第一栏是源字符串,第二栏是目标字符串。例如把汉字转为拼音的自定义替换表可以这样写 中=zhong1 国=guo2 大=da4 如果替换表中要包含“=” ,需要用“=”表示。如果替换表要包含“” ,需要用“”表示。 11替换表准备好后,选择菜单“设置|自定义替换表”来设置替换表。TextPro6 允许定义最多 50 张替换表(在正则表达式中可以使用前 10张替换表) 。首先选择一个位置,使那一行被选中,然后按“

20、文件”按钮,即可装入这张替换表。点击“浏览”按钮可以查看指定的替换表。TextPro6 统一处理自定义替换表和原来的正则替换表。所以在装入替换表后,应点击“选项”按钮设定替换表的选项。你也可以为这张替换表另起个名字,按“命名”按钮可以输入名称。 “过滤”按钮与替换函数有关,等一下再作介绍。设置完以后,按“退出”钮结束。现在,选择菜单“编辑|自定义替换” ,可以看到弹出的下级菜单中有一项功能被开启了,菜单项的名称就是刚才给替换表起的名称(如果没有起名称,默认的菜单名称是“自定义替换 n”)。选择这项功能,将把出现在当前文件中的所有源串按替换表替换为目标串。在批处理中可以使用自定义替换功能。注意先

21、设好替换表,不然选不到这个功能。替换表中也可加行首用%或#的注释行,程序会忽略它而不执行,例如在某篇 htm 佛教文章中:# 科判小标题中的天干和地支加粗:( Tn、f+.*)=1( D、 )=14.1在查找替换中使用自定义替换表有的时候,上述简单的自定义替换功能是不够的。例如,用户可能希望只把出现在括号内的源串替换为目标串。这种文本处理可以通过在查找/替换中使用自定义替换表来解决。在查找/替换功能中使用自定义替换表的替换函数是Tn ,其中 n是 0-50 的数字, 例如 n 为 10 表示第 10 张替换表。如果略去 n,其效果相当于T1,即使用第一张替换表。例如要把所有放在方括号中的汉字替

22、换为拼音,可以查找“(c) ”,替换为“T1” 。即把第一12个子表达式的匹配内容按自定义替换表转换。注意,如果T 函数的参数不在替换表的源串中,T 函数的结果与源串相同,即不做任何变换。有些情况下,用户可能希望只使用替换表的一部分内容。还是以拼音为例,前面给出的替换表中包含了拼音的音调,如果在替换时不希望加上这些音调数字,可以使用“过滤”功能。所谓过滤,其实是用一个正则表达式去分析替换表的目标串,并把其中的某个子表达式取出来。使用“过滤”时,在“设置自定义替换表”对话框中,点“过滤”按钮,在弹出的对话框中填入一个正则表达式。再以拼音为例,表达式可以写为“(a+)(d?)” ,其中第一对括号中

23、的是不含音调的拼音,第二对括号是音调。在调用T 函数时, TextPro 会在目标串中查找这个正则表达式。但是如何把其中的子表达式取出来呢?T 函数还有一个可选的下标,取第 n 个子表达式的值就写作T.n。所以,把放在方括号中的汉字替换为不带调的拼音,可以查找“(c)” ,替换为“T11”五 应用举例(一)例一:要在文本文件中增加段间空行操作办法:用替换功能,在“查找”中输入“$” ,在替换中输入“n”。分析:“$”匹配行末;在替换时输入“n” ,表示换行。即在段末位置后增加一个空行。例二:在 TextPro 的制作过程中,我们需要整理许多资料。例如简转繁的资料是一个文本文件,每行两个汉字,前

24、一个为简体字,后一个为繁体字。但是有不少行简繁体其实是同一个字,我们希望将其剔除。13操作办法:用替换功能,在“查找”中输入“(c)1” ,在替换中输入“d” 。分析:“c”匹配任一汉字, “1”是引用子表达式,因此上面的正则表达式表示查找连续两个相同的汉字。在替换时输入“d” ,道理同上。例三:某文件由一些有用的资料及注释组成。注释单独成行,并以“#”开头。现在希望将所有的注释行删除。操作办法:用替换功能,在“查找”中输入“#.*$” ,在替换在输入“d” 。分析:匹配行首,#表示行首有符号#,.*匹配#之后的所有字符,直到行末($)。这个表达式将整行匹配所有以#开头的行。替换成“d”将把这

25、些行清除。例四:有一个从“输入法生成器”反编译出来的拼音表,其中有单字的拼音,也有词组的拼音。现在希望把单字的拼音和词组的拼音分开。已经文件的格式是每行一个字或词组,行首是汉字或词组,其后紧跟拼音。操作办法:用替换功能,查找“cc+f+” ,替换为“d ”,就得到了一份单字的拼音表,另存为“单字.txt”后,按 Ctrl+Z(UNDO)撤消刚才的操作,再用替换功能,查找“cf+” ,替换为“d” ,就得到了词组的拼音表,可另存为“词组.txt” 。分析:“cc+f+”匹配行首以汉字开头,跟着一个以上的汉字,再跟着一个以上任意半角字符的行,也就是所有的词组行,替换为“d”把这些行删除,得到的是单

26、字的拼音表;“cf+”匹配以一个汉字开头,紧跟着一个以上任意半角字符,这些正好是单字的拼音行,删除后即得词组的拼音表。5.1 应用举例(二)例五:将一本辞典编为电子辞典的过程中需要将词条的页码加上。例如: 14【有】 瑜伽九十七卷十一頁云:又住於此,若生,若長,能生後際所有諸苦;說名為有 需要在【有】后面加上这个词条出现的页码。变成“【有】p0534 ”这时正好辞典的目录页有词条的页码可供利用。我们可用自定义替换表来解决这个问题。操作办法:1、先将目录文件做成词条在前,空格后接页码的如下格式: 【有】=p0534 【有為】=p0535 【有法】=p0535 【有情】=p0535 【有色】=p0

27、5362、在“设置|自定义替换表 ”中设置为第 n 张表,此处假定为第6 张表。3、在辞典文件中查找“(【c+】)” ,替换成“0T61” ,即可做成达成如下目标文件格式: 【有】p0534 瑜伽九十七卷十一頁云:又住於此,若生,若長,能生後際所有諸苦;說名為有分析:“(【c+】)”是用括号表示的一个汉字以上的词条;0 是重写词条,上例中是【有】 ;T61是用上述第 6 张替换表替换查找到的词条,即用页码替换词条,上例即是用 p0534 替换了【有】 ,最后的替换结果为“【有】p0534” 。例六:汉字注拼音有一份文本,现在要给每个汉字注上拼音,格式为中(zhong 阴平) 国(guo 阳平)

28、 人(ren 阳平).15我们可能用自定义替换来解决这个问题。需要用到两张自定义替换表。第一张是“拼音表.txt ”,其内容和格式为中=zhong1 国=guo2 人=ren2 另一张表是“音调表.txt ”,内容一共 5 行:1=阴平 2=阳平 3=上声 4=去声 5=轻声在“设置自定义替换表”中,把“拼音表.txt”设为第 1 张替换表,并输入“过滤”表达式“(a+)(d)” ,表示一位以上的字母后跟一位数字;再把“音调表.txt ”设置为第 2 张替换表。好了,现在查找“c” ,替换为“0(T1T2T2)”即可完成注音工作。分析:1、替换串的第一个“0 ”表示把这个汉字再写一遍(举第一行

29、的“中”字为例) ;2、括号里的“T1”相当于“T101” ,它从第 1 张表中查找匹配到的汉字,并把对应的拼音用过滤表达式做一次查找,取查找结果的第一个子表达式,即(a+)部分(上例中为“zhong ”) ;3、 “T2T2”是一个嵌套的替换函数调用,内层的“T2”是取第一张表的过滤表达式第二个子表达式的音调数字,即(d)部分(上例中为“1” ) ,然后再以这个音调数字为参数,查找第 2 张替换表,得到该音调的中文表示,上例中为“阴平” 。 164、综合以上三步,查找替换的结果为可如“中(zhong 阴平) 国(guo 阳平 ) 人(ren 阳平).” 。17巧用正则表达式在 Word 中轻

30、松处理 PDF 转换 Word、TXT 后出现多处断行问题我们经常需要在互联网上下载各种各样的 PDF 文件,有些时候我们还需要将 PDF 转换成 Word和 Txt 文件,而这个时候就会出现一个问题转换好的文档,出现了很多莫名其妙的断行(如下图) ,这让人很头疼。这是因为 PDF 转换成文字时,往往没有智能到分析出哪些是一个段落、哪些是一个句子,它只能按照 PDF 每一页所显示的结果来直接转换成文字。通过多次尝试,我发现可以用计算机领域的“正则表达式”来轻松解决这个问题。正则表达式是一组描述文字的公式,通过对文字内容的分析,得出一个公式,然后利用这个公式可以轻松的对全文进行修正,这样一来就节

31、省了极大的工作量。那么,接下来我将具体展示,如何利用正则表达式在我们常用的 Word 软件中处理 PDF 转换Word、Txt 文件后的问题。首先,我们需要有一个 PDF 转换后的 Word 文档,如本例的无政府、国家与乌托邦. 诺齐克这本书。在上图中我们可以看到,它的每个句子都被无情的拆开,加上了换行。下面我们就来针对这个问题处理。打开这个 Word 文档,按下按键 Ctrl+H,调出“查找与替换”对话框,点击“更多”按钮,勾18选“使用通配符” 。然后在“查找内容”中输入:(13!13)(,, 。??)(!。13)13在“替换为”中输入:13123(如下图)最后点击“全部替换” 。然后我们

32、可以看到刹那间,大多数的无理断行都被重新连接了。不过这里还有个小问题,就是由于 Word 软件目前的正则表达式功能并不够完善,因此有可能无法一次性处理完问题,我们会发现还有一些断行没有被处理。这时需要我们再多点击几次“全部替换”按钮,直到全部处理完毕为止。看,就是这么简单。当然,也许还有一些遗漏,这是因为书籍中的各种情况都会出现,我们很难智能到一次性就把所有无理断行都识别出来。但是我相信,走到这一步,已经可以为你节省不少功夫了。另外,如果你还想对文中的“无理空格”进行处理,可以依法炮制在“查找内容”中输入: q在“替换为”中不输入任何东西,如下图所示:19这样一来,你也许可以看到你的文档已经更

33、为接近原始的面貌了。下面,我将解释一下这个处理方式的原理。首先我们对无理断行的内容进行分析,会发现所有的无理断行都是未完结的句子,转换成程序语言就是句尾没有类似句号或问号的标识符。于是我们利用“(!。13)13”这个语句来表示没有句号的标识符,就可以搜索到所有这样的句子。而不幸的是我们还会搜索到一些不需要的句子,比如章节号一整行只有一个标题,也没有句号。但我们不要处理它,要排除它。于是我们需要告诉电脑只搜索句子,利用“(13!13)(,, 。? ?) ”这个表达式来搜索,其特征就是:有逗号、句号、问号等标识符。将整体链接起来,就成为了我们一开始所输入的那套公式。搜索到那些无理断行后,我们只需将

34、行尾的换行去掉就完成了。最后,感谢正则表达式的设计者Unix 之父,Ken Thompson。他的发明,让我们在电子生活中体验到了极大的好处。同时也希望对这个方法感兴趣的朋友们联系我,一起学习这个好用的工具。谢小波Leonard_2012 年 12 月 17 日20Word 查找栏代码通配符一览表清除使用通配符复选框 勾选使用通配符复选框序号特殊字符 代码 特殊字符 代码 or 通配符1 任意单个字符 ? 任意单个字符 ?2 任意数字 # 任意数字(单个) 0-93 任意英文字母 $ 任意英文字母 a-zA-Z4 段落标记 p 段落标记 135 手动换行符 l 手动换行符 l or 116 图

35、形 g or 1 图形 g7 1/4 长划线 + 1/4 长划线 q8 长划线 j 长划线 +9 短划线 q 短划线 =10 制表符 t 制表符 t11 脱字号 脱字号 12 分栏符 v 分栏符 n or 1413 分节符 b 分节符/分页符 m14 省略号 n 省略号 i15 全角省略号 i 全角省略号 j16 无宽非分隔符 z 无宽非分隔符 z17 无宽可选分隔符 x 无宽可选分隔符 x18 不间断空格 s 不间断空格 s19 不间断连字符 不间断连字符 20 段落符号 % 表达式 ( )21 分节符 单词结尾 23 可选连字符 - 任意字符串 * 24 空白区域 w 指定范围外任意单个字

36、符 !x-z25 手动分页符 m 指定范围内任意单个字符 - 26 尾注标记 e 1 个以上前一字符或表达式 27 域 d n 个前一字符或表达式 n 28 Unicode 字符 Unnnn n 个以上前一字符或表达式 n, 29 全角空格 u8195 n 到 m 个前一字符或表达式 n,m 30 半角空格 32 or u8194 所有小写英文字母 a-z31 批注 a or 5 所有大写英文字母 A-Z32 所有西文字符 1-12733 所有中文汉字和中文标点 !1-12734 所有中文汉字(CJK 统一字符) 一- 龥 or 一- 35 所有中文标点 !一-龥1-12736 所有非数字字符

37、 !0-9注:要查找已被定义为通配符的字符,该字符前键入反斜杠 。查找?、*、(、)、 、 等的21代码分别是?、*、( 、)、 、 。22Word 替换栏代码通配符一览表清除使用通配符复选框 勾选使用通配符复选框序号特殊字符 代码 特殊字符 代码 or 通配符0 要查找的表达式 n 1 段落标记 p 段落标记 p2 手动换行符 l 手动换行符 l3 查找的内容 & 查找的内容 &4 剪贴板内容 c 剪贴板内容 c5 省略号 i 省略号 i6 全角省略号 j 全角省略号 j7 制表符 t 制表符 t8 长划线 + 长划线 +9 1/4 长划线( ) q 1/4 长划线( ) q10 短划线(

38、) = 短划线( ) =11 脱字号 脱字号 12 手动分页符 m or 12 手动分页符/分节符 m13 可选连字符(_) - 可选连字符(_) -14 不间断连字符(-) 不间断连字符(-) 15 不间断空格 s 不间断空格 s16 无宽非分隔符 z 无宽非分隔符 z17 无宽可选分隔符 x 无宽可选分隔符 x18 分栏符 n 分栏符 n19 分节符 % 分节符 %20 段落符号 v 段落符号 vWord 通配符用法详解1、任意单个字符:“?”可以代表任意单个字符,输入几个“?”就代表几个未知字符。如:输入“? 国”就可以找到诸如“中国”、“美国”、“英国”等字符;输入“?国”可以找到“孟

39、加拉国”等字符。2、任意多个字符:“*”可以代表任意多个字符。如:输入“*国”就可以找到“中国”、“美国”、 “孟加拉国”等字符。 233、指定字符之一:“”框内的字符可以是指定要查找的字符之一,如:输入“中美国”就可以找到“中国”、“美国”。 又如:输入“thiug”,就可查找到“thigh”和“thug”。 输入“学硕博士”,查找到的将会是学士、士、硕士、博士。 输入“大中小学”可以查找到“大学”、“中学”或“小学”,但不查找“求学”、“开学”等。输入“高矮个”的话,Word 查找工具就可以找到“高个”、“矮个”等内容。4、指定范围内的任意单个字符:“x-x”可以指定某一范围内的任意单个字

40、符,如:输入“a-eay”就可以找到“bay”、“day”等字符,要注意的是指定范围内的字符必须用升序。用升序。如:输入“a-cmend”的话,Word 查找工具就可以找到“amend”、“bmend”、“cmend”等字符内容。5、排除指定范、排除指定范围内的任意单个字符: “!x-x”可以用来排除指定范围内的任意单个字符,如:输入“!c-f”就可以找到“bay”、“gay”、“lay”等字符,但是不等字符,但是不会找到“cay”、“day”等字符。要注意范围必须用升序。又如:输入“!a-c”的话,word 程序就可以找到“good”、“see”、“these”等目标字符,而所有包含字符 a

41、、b、c 之类的内容都不会在查找结果中出现。又如:输入“m!ast”,用,用来查找“mist”和“most”不会查找“mast”。 输入“!an”,查到的将会是除 an 以外的所有可能组合如:合如:in、on 等。 6、指定前一字符的个数:“n”可以用来指定要查找的字符中包含前一字符的个数,如:输入“cho1 se”就是说包含 1 个前一字符“o”,可以找到“chose”,输入“cho2se”就是说包含 2 个前一字符“o”,可以找到, “choose”。 又如:输入“lit1le”就是说包含 1 个前一字符“t”,可以找到“litle”。 输入“lit2le”就是说包含 2 个前一字符“t”

42、,可以找到“little”。 输入“te2n”,表示查找“teen”而不会查找“ten”。 输入“of2ice”,查找到的将会是 office。7、指定前一字符、指定前一字符数范围:24“x,x”可以用指定要查找字符中前一字符数范围,如:输入“cho1,2”,则说明包含前一字符“o”数目范围是 1-2 个,则可以找到“chose”、“choose”。8、一个以上的前一字符:“”可以用来指定要查找字符中包含一个以上的前一字符,如:输入“chose”,就可以找到, “chose”、“choose”等字符。9、指定起始字符串:“”可以用来指定要查找字符中的结尾字符串,如:输入“er”,就说明要查找的

43、字符的结尾字符为“er”,可以找到 “ver”、“her”、“lover”等等。输入“en”, 就说明要查找到以“en”结尾的所有目标对象,可能找到“ten”、“pen”、“men”输入“up”,就说明要查找到以“up”结尾的所有目标对象,例如会找到“setup”、“cup”等等。11、表达式查找:“()”,尤其用于多个关键词的组合查找。键入“(America)(China)”,在“替换为”中键入“2 1”,Word 找到“America China”并替换为“China America”。 输入“”,就表示查找的是所有以“江山”开头并且 以“多娇”结尾的字符串。另外为了更精确的查找,你还可以

44、把以上的通配符联合起来使用,如:输入“”则表示查找所有以“ag”开头并且以“er”结尾的单词,注意这时需要用括号将来区分开不同的查找规则。最后还要注意如果要查找已经被定义为通配符的字符,如“*”、“?”等字符,必须在该字符前面加上反斜杠“”,如:输入“*”则表示查找字符“*”。 使用通配符搜索选中“使用通配符”复选框后,Word 只查找与指定文本精确匹配的文本(请注意, “区分大小写”和“全字匹配”复选框会变灰而不可用,表明这些选项已自动选中,您不能关闭这些选项) 。 要查找已被定义为通配符的字符,请在该字符前键入反斜扛 (),例如,要查找问号,可键入25“?” 。序号 查找内容 通配符 示例

45、1. 任意单个字符 ? 例如,s?t 可查找“sat”和“set”。2. 任意字符串 * 例如,s*d 可查找“sad”和“started”。3. 单词的开头 例如,(in) 查找 “in”和“within”,但不查找“interesting”。5. 指定字符之一 例如,wion 查找“win ”和“won”。6. 指定范围内任意单个字符 - 例如,r-tight 查找“right”和“sight”。必须用升序来表示该范围。7. 中括号内指定字符范围以外的任意单个字符!x-z 例如,t!a-mck 查找“tock”和“tuck”,但不查找“tack”和“tick”。8. n 个重复的前一字符或

46、表达式 n 例如,fe2d 查找“feed” ,但不查找“fed” 。9. 至少 n 个前一字符或表达式 n, 例如,fe1,d 查找 “fed”和“feed”。10. n 到 m 个前一字符或表达式 n,m 例如,101,3 查找 “10”、“100”和“1000” 。11. 一个以上的前一字符或表达式 例如,lot 查找“lot ”和“loot”。一些代码只有在选中或清除“使用通配符”选项时才能使用。使用代码搜索可以在“查找内容”或“替换为”框中使用的代码段落标记() 键入p(选中 “使用通配符”复选框时在“查找内容”框中无效)或键入13制表符() 键入t 或键入9ASCII 字符 键入n

47、nn,其中 nnn 是字符代码ANSIcharacter 键入0nnn ,其中 nnn 是字符代码长划线() 键入+短划线() 键入=脱字号 键入手动换行符() 键入l 或键入11分栏符 键入n 或键入1426分页符或分节符 键入12(替换时,插入分页符)手动分页符 键入m(当选中 “使用通配符”复选框时,还将查找或替换分节符)不间断空格() 键入s不间断连字符() 键入可选连字符() 键入-只能在“查找内容”框中使用的代码(选中“使用通配符”复选框时)图片或图形(仅嵌入) 键入g只能在“查找内容”框中使用的代码(清除“使用通配符”复选框时)任意字符 键入?任意数字 键入#任意字 键入$Unicode 字符

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报