




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
正则表达式和自定义替换目 录版权信息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的其它功能相结合,可以方便地实现许多复杂的文本处理工作。 正则表达式原本是形式语言理论中的概念,与编译器的构造有密切的联系。但是作为一个应用软件的用户,我们没有必要去细究正则表达式的严格定义和处理方法。本文将从实用的角度出发,阐述在TextPro中引入正则表达式的目的、正则表达式的命令格式,以及如何利用正则表达式完成一些实际的文本处理工作。 我们在处理文本时,经常会遇到一些具有某种特定格式,或者说满足某种规则的文本。比如,一个无符号的整数由一连串的数字构成,而一个Email地址的格式则是“用户名主机名”,其中用户名是一串字母或数字,主机名则是由若干个由“.”分隔的字母数字串。正则表达式就是用来指定这种规则的。如果某个字符串满足正则表达式指定的规则,则称该字符串为正则表达式的一个“匹配串”。二 正则表达式的构成 为了方便理解,让我们先来看看大家比较熟悉的数学表达式,“(x+3)*2+y”是一个典型的数学表达式。一个数学表达式由若干个“项”组成,“项”与“项”之间用加号或减号相连;这里“(x+3)*2”和“y”分别是两个项。每个项又由若干个“因子”组成,因子之间用乘号或除号相连;这里第一个项有两个因子“(x+3)”和“2”,而第二个项只有一个因子“y”。每个因子可以是一个简单的数,一个代数变量,也可以是放在括号里面的另一个表达式。对于最后一种情况,括号中的表达式称为“子表达式”;这里“x+3”就是一个子表达式。 正则表达式的结构与数学表达式很相似。与数学表达式的“项”相对应,正则表达式由若干个“分支”构成,“分支”之间用符号“|”相连。从逻辑上讲,分支之间是一种“或”的关系,一个字符串只要与正则表达式中的任何一个分支相匹配,这个字符串就与整个正则表达式相匹配。比如,“第三人称代词”可以用正则表达式表示为“他|她|它|他们|她们|它们”。 与数学表达式的“因子”相对应,构成正则表达式“分支”的部件称为“原子”。“原子”与“原子”之间没有任何符号相连。从逻辑上讲,原子之间是串接的关系,一个字符串必须与各个原子依次相匹配,才算与这个分支相匹配。比如在上面的例子中,分支“他们”由两个原子“他”和“们”组成。 正则表达式的本质是它的“原子”可以有多种不同的形式。前面的例子是最简单的情形,即每个原子由一个普通字符组成。除此以外,“原子”还可以是特殊符号、通配符、字符集以及子表达式。 2.1 特殊符号可以作为特殊符号的原子有: 匹配行首。例如,“他”匹配出现在行首的“他”字。值得注意的是,这个符号仅仅表示“行首”这个位置,与它相匹配的字符串长度为0;$ 匹配行末。与“”相似,它仅表示“行末”这个位置。例如,“。$”匹配出现在行末的句号; 匹配词尾。词尾是指紧接在字母数字或下划线之后的第一个非字母数字下划线,任一汉字之后也属于词尾。词尾的匹配长度也是0; t TAB字符;2.2 通配符通配符是用一个符号(或几个符号组合)来匹配某一类满足条件的字符。可以使用通配符来查找字符是正则表达式的一大特点。TextPro支持下列通配符(注意大小写的区别): 以半角为主的部分: .(句点) 匹配任意半角或全角字符; a 匹配任意英文字母; a 匹配除字母外的任意半角或全角字符; d 匹配任意数字; d 匹配除数字外的任意半角或全角字符; h 匹配任意词首字符(字母及下划线); h 匹配除字母及下划线以外的任意字符; l 匹配任意小写字母; l 匹配除小写字母外的任意半角或全角字符; o 匹配任意八进制数字(0-7); o 匹配除八进制数字外的任意字符; p 匹配任意半角标点符号(非空格、字母、数字的可打印ASCII字符); p 匹配除半角标点以外的任意半角或全角字符; s 匹配任意空白字符(半角空格、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 匹配任意汉字(不包括符号); c 匹配除汉字外的任意全角字符; D 匹配地支字符(子丑寅卯); g 匹配收录在GBK码集中的任意字符; g 匹配未收录在GBK码集中的任意字符; G 匹配大写希腊字母 j 匹配日文片假名 J 匹配日文平假名 k 匹配小写希腊字母 m 匹配数学符号; n 匹配中文数字(一二三四); N 匹配大写中文数字(壹贰叁肆); P 匹配全角标点符号; r 匹配小写俄文字母; R 匹配大写俄文字母; S 匹配罗马数字,带点、括号或圆圈的序号(); T 匹配天干字符(甲乙丙丁); V 匹配竖排标点符号; y 匹配拼音字符; Y 匹配注音字符; Z 匹配制表字符;2.3 字符集字符集是用一对方括号括起来的字符串,用以匹配字符集中的任何一个字符。比如“他她它”匹配单数任一第三人称代词“他”、“她”或“它”。如果方括号中的第一个字符是,则匹配除指定字符外的任何其它字符。例如“我+$”匹配没有“我”字的整行,也可称为“查找不匹配的行”。分析:表示行首,我表示除“我”以外的任何字符,+表示多个这种匹配字符,$表示一直到行末。在字符集中,还可以用-表示字符的范围,例如“a-z”匹配任何小写字母。注意尽量不要用“-”表示汉字的范围,因为汉字并没有公认的次序,TextPro目前是依据汉字的Unicode编码来确定范围的。如果两个汉字的编码相差很大,将消耗大量的内存,运算也将非常缓慢。为了避免这种现象,TextPro中限制表示范围的起始与终止汉字必须位于Unicode编码的同一行(row)。如果字符集要包括字符“”、“”、“-”或“”,可以在这些字符前加“”。例如“xyz”匹配, x,y或z。另外需要特别指出的是,前面所述的特殊字符及通配符,除了t和e外,在字符集中均作为普通字符处理。 字符集的匹配速度比通配符慢,所以应该尽可能地使用通配符。例如要查找半角数字时,应该使用d,而不要使用0-9,虽然后者也是正确的。2.4 子表达式子表达式是指用一对括弧()括起来的另外一个正则表达式。使用子表达式有两种主要的目的。一是改变匹配的优先级,例如“中|西文软件”匹配的是“中”或“西文软件”,但是“(中|西)文软件”匹配的是“中文软件”或“西文软件”。 使用子表达式的另一个目的,是引用前面匹配到的内容。例如要查找形如“哈哈”、“嘻嘻”的叠字词,可以写“(c)1”。这里“(c)”匹配任意汉字,而“1”则引用匹配到的内容。TextPro允许在一个查找串包含最多9个子表达式,它们的匹配内容可以分别用“1”,“2”.“9”来加以引用。子表达式也可以嵌套另一个子表达式,子表达式左括号出现的序号为这个表达式的编号。另外需要注意的是,只能引用已经匹配了的子表达式,象上面的例子不可以写成“1(c)”,同理,也不应该引用不同分支中的子表达式,因为一个正则表达式中只可能有一个分支被匹配。2.5 重复指示符正则表达式的另外一个强大的功能是重复匹配的能力。前述的任何一种“原子”之后,都可以指定一个重复指示符。下面列出各种重复指示符:? 表示前一“原子”可有可无(重复0或1次)。例如 “我们?”匹配“我”或“我们”; + 表示前一“原子”至少匹配一次。例如“d+”匹配任何一个无符号整数; * 表示前一“前子”重复匹配0或多次。例如“hw*”表示许多高级语言对“变量”的定义:以字母或下划线开头,后接任意多个字母数字或下划线; n 表示前一“原子”重复匹配n次。例如“c啦3”匹配“哗啦啦啦”或“呼啦啦啦”等; n,m 表示前一“原子”重复匹配n至m次,其中nm,TextPro将自动交换m与n的值; n, 至少重复匹配n次,相当于n,无穷大; ,m 至多重复匹配m次,相当于0,m; 重复任意多次,相当于*。在前面所述的各种重复指示符中,如果重复的次数不定,TextPro将匹配尽可能长的目标串(但最多不超过32767次,这是TextPro内设定的上限)。例如有一字符串“你好,我好,大家好”,表达式“你.*好”将匹配整个字符串,而不是“你好”或“你好,我好”。如果需要匹配尽可能短的目标串,可以采用前述的最后四种形式,并在“”之后加上“-”号。上例中的表达式如改为“你.-好”,则匹配串为“你好”。-n,m 重复匹配m至n次,匹配次数尽可能少;-n, 至少重复匹配n次,匹配次数尽可能少;-,m 至多重复匹配m次,匹配次数尽可能少,相当于-0,m; - 重复任意多次,类似于*,但匹配次数尽可能少。重复指示符只对紧邻在其前的“原子”起作用,例如“你好+”将匹配“你好”,“你好好”。但是不会匹配“你好你好”。如果要重复匹配一组原子,可以使用括号(子表达式),如“(你好)+”就会匹配“你好你好”。需要指出的是,重复指示符与引用子表达式具有不同的含义。重复指示符是重复“匹配”,至于匹配的内容则可以不同;而引用子表达式则是重复匹配的内容。例如,“d2”可以匹配任何一个两位数的整数,但是“(d)1”只能匹配“11”、“22”、“33”等数字相同两位数。当然,也可以重复引用子表达式,如“(d)1*”可以匹配“2”,“33”、“111”等各位数全同的整数。如前所述,在正则表达式中,以下字符“*?+.()”具有特殊的含义。如果需要查找这些字符本身,可以在该字符前加一个反斜杠“”。例如查“def”可以输入“def”。三 替换表达式3.1 特殊字符在进行替换时,也可以在替换串中使用一些特殊字符。目前TextPro支持的特殊字符有: n 插入回车符。可以用这个字符把某些行分成两行或多行; b 向前删除一个字符。当这个字符位于替换串之首时,将删除匹配串之前的一个字符。若匹配串位于行首,将使匹配串所在行与前一行相合并; d 向后删除一个字符。当这个字符位于替换串之末时,将删除匹配串之后的一个字符。若匹配串位于行末,将使匹配串所在行与下一行相合并; t 插入一个TAB字符; 也可以在替换串中引用查找串中的匹配到的子表达式。引用方法也是用“1”、“2”等。另外还可以用“0”来引用整个匹配到的字符串。3.2 替换函数 在替换串中还可以使用一组替换函数,来对查找到的内容做某种变换。替换函数的形式是f.,其中“f”是函数名,它是一个半角英文字母。花括号中的内容是函数的参数。例如,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, 竖排符号横转 替换函数的参数部分可以略去不写。如果略去,默认的参数是查找到的内容,即0。例如,要把文中所有英文单词的首字母大写,可以查找“”,并替换为“U0”,替换串也可以简写为“U”TextPro V6.5用此功能可实现自定义替换表进行二次正则替换,即可对查找到第n对匹配的内容使用第m个自定义替换表进行二次正则替换。例如查找:.*,替换为:S3即可对查找到的 之间的内容进行自定义替换表3的操作。再如查找:(.*)(.*),替换:1S62即可对查找到的第2组匹配.*之间的内容进行自定义替换表6的操作。四 自定义替换表功能 TextPro 4.5以后提供了自定义替换表功能。所谓自定义替换,其实是一张替换表,它把某个字符串对应转换为另外一个字符串,比如把汉字转换为拼音。TextPro 6.x将自定义替换表与正则替换表合并在一起,增加了后者的数量并能保存,并增加了查找的选项。替换表是一个文本文件,它的每一行指定一个转换关系。行由两栏组成,栏与栏之间用分隔符半角等号“=”分开。第一栏是源字符串,第二栏是目标字符串。例如把汉字转为拼音的自定义替换表可以这样写 中=zhong1 国=guo2 大=da4 . 如果替换表中要包含“=”,需要用“=”表示。如果替换表要包含“”,需要用“”表示。 替换表准备好后,选择菜单“设置|自定义替换表”来设置替换表。TextPro6允许定义最多50张替换表(在正则表达式中可以使用前10张替换表)。首先选择一个位置,使那一行被选中,然后按“文件”按钮,即可装入这张替换表。点击“浏览”按钮可以查看指定的替换表。TextPro6统一处理自定义替换表和原来的正则替换表。所以在装入替换表后,应点击“选项”按钮设定替换表的选项。你也可以为这张替换表另起个名字,按“命名”按钮可以输入名称。“过滤”按钮与替换函数有关,等一下再作介绍。设置完以后,按“退出”钮结束。现在,选择菜单“编辑|自定义替换”,可以看到弹出的下级菜单中有一项功能被开启了,菜单项的名称就是刚才给替换表起的名称(如果没有起名称,默认的菜单名称是“自定义替换n”)。选择这项功能,将把出现在当前文件中的所有源串按替换表替换为目标串。在批处理中可以使用自定义替换功能。注意先设好替换表,不然选不到这个功能。替换表中也可加行首用%或#的注释行,程序会忽略它而不执行,例如在某篇htm佛教文章中:# 科判小标题中的天干和地支加粗:(Tn、f+.*)=1(D、)=14.1 在查找替换中使用自定义替换表有的时候,上述简单的自定义替换功能是不够的。例如,用户可能希望只把出现在括号内的源串替换为目标串。这种文本处理可以通过在查找/替换中使用自定义替换表来解决。在查找/替换功能中使用自定义替换表的替换函数是Tn,其中n是0-50的数字, 例如n为10表示第10张替换表。如果略去n,其效果相当于T1,即使用第一张替换表。例如要把所有放在方括号中的汉字替换为拼音,可以查找“(c)”,替换为“T1”。即把第一个子表达式的匹配内容按自定义替换表转换。注意,如果T函数的参数不在替换表的源串中,T函数的结果与源串相同,即不做任何变换。有些情况下,用户可能希望只使用替换表的一部分内容。还是以拼音为例,前面给出的替换表中包含了拼音的音调,如果在替换时不希望加上这些音调数字,可以使用“过滤”功能。所谓过滤,其实是用一个正则表达式去分析替换表的目标串,并把其中的某个子表达式取出来。使用“过滤”时,在“设置自定义替换表”对话框中,点“过滤”按钮,在弹出的对话框中填入一个正则表达式。再以拼音为例,表达式可以写为“(a+)(d?)”,其中第一对括号中的是不含音调的拼音,第二对括号是音调。在调用T函数时,TextPro会在目标串中查找这个正则表达式。但是如何把其中的子表达式取出来呢?T函数还有一个可选的下标,取第n个子表达式的值就写作T.n。所以,把放在方括号中的汉字替换为不带调的拼音,可以查找“(c)”,替换为“T11” 五 应用举例(一)例一:要在文本文件中增加段间空行操作办法:用替换功能,在“查找”中输入“$”,在替换中输入“n”。分析:“$”匹配行末;在替换时输入“n”,表示换行。即在段末位置后增加一个空行。例二:在TextPro的制作过程中,我们需要整理许多资料。例如简转繁的资料是一个文本文件,每行两个汉字,前一个为简体字,后一个为繁体字。但是有不少行简繁体其实是同一个字,我们希望将其剔除。操作办法:用替换功能,在“查找”中输入“(c)1”,在替换中输入“d”。分析:“c”匹配任一汉字,“1”是引用子表达式,因此上面的正则表达式表示查找连续两个相同的汉字。在替换时输入“d”,道理同上。例三:某文件由一些有用的资料及注释组成。注释单独成行,并以“#”开头。现在希望将所有的注释行删除。操作办法:用替换功能,在“查找”中输入“#.*$”,在替换在输入“d”。分析:匹配行首,#表示行首有符号#,.*匹配#之后的所有字符,直到行末($)。这个表达式将整行匹配所有以#开头的行。替换成“d”将把这些行清除。例四:有一个从“输入法生成器”反编译出来的拼音表,其中有单字的拼音,也有词组的拼音。现在希望把单字的拼音和词组的拼音分开。已经文件的格式是每行一个字或词组,行首是汉字或词组,其后紧跟拼音。操作办法:用替换功能,查找“cc+f+”,替换为“d”,就得到了一份单字的拼音表,另存为“单字.txt”后,按Ctrl+Z(UNDO)撤消刚才的操作,再用替换功能,查找“cf+”,替换为“d”,就得到了词组的拼音表,可另存为“词组.txt”。分析:“cc+f+”匹配行首以汉字开头,跟着一个以上的汉字,再跟着一个以上任意半角字符的行,也就是所有的词组行,替换为“d”把这些行删除,得到的是单字的拼音表;“cf+”匹配以一个汉字开头,紧跟着一个以上任意半角字符,这些正好是单字的拼音行,删除后即得词组的拼音表。5.1 应用举例(二)例五:将一本辞典编为电子辞典的过程中需要将词条的页码加上。例如: 【有】 瑜伽九十七卷十一頁云:又住於此,若生,若長,能生後際所有諸苦;說名為有 需要在【有】后面加上这个词条出现的页码。变成“【有】p0534 ”这时正好辞典的目录页有词条的页码可供利用。我们可用自定义替换表来解决这个问题。操作办法:1、先将目录文件做成词条在前,空格后接页码的如下格式: 【有】=p0534 【有為】=p0535 【有法】=p0535 【有情】=p0535 【有色】=p05362、在“设置|自定义替换表”中设置为第n张表,此处假定为第6张表。3、在辞典文件中查找“(【c+】)”,替换成“0T61”,即可做成达成如下目标文件格式: 【有】p0534 瑜伽九十七卷十一頁云:又住於此,若生,若長,能生後際所有諸苦;說名為有分析:“(【c+】)”是用括号表示的一个汉字以上的词条;0是重写词条,上例中是【有】;T61是用上述第6张替换表替换查找到的词条,即用页码替换词条,上例即是用p0534替换了【有】,最后的替换结果为“【有】p0534”。例六:汉字注拼音有一份文本,现在要给每个汉字注上拼音,格式为中(zhong阴平) 国(guo阳平) 人(ren阳平).我们可能用自定义替换来解决这个问题。需要用到两张自定义替换表。第一张是“拼音表.txt”,其内容和格式为中=zhong1 国=guo2 人=ren2 .另一张表是“音调表.txt”,内容一共5行:1=阴平 2=阳平 3=上声 4=去声 5=轻声在“设置自定义替换表”中,把“拼音表.txt”设为第1张替换表,并输入“过滤”表达式“(a+)(d)”,表示一位以上的字母后跟一位数字;再把“音调表.txt”设置为第2张替换表。好了,现在查找“c”,替换为“0(T1T2T2)”即可完成注音工作。分析:1、替换串的第一个“0”表示把这个汉字再写一遍(举第一行的“中”字为例);2、括号里的“T1”相当于“T101”,它从第1张表中查找匹配到的汉字,并把对应的拼音用过滤表达式做一次查找,取查找结果的第一个子表达式,即(a+)部分(上例中为“zhong”);3、“T2T2”是一个嵌套的替换函数调用,内层的“T2”是取第一张表的过滤表达式第二个子表达式的音调数字,即(d)部分(上例中为“1”),然后再以这个音调数字为参数,查找第2张替换表,得到该音调的中文表示,上例中为“阴平”。 4、综合以上三步,查找替换的结果为可如“中(zhong阴平) 国(guo阳平) 人(ren阳平).”。巧用正则表达式在Word中轻松处理PDF转换Word、TXT后出现多处断行问题我们经常需要在互联网上下载各种各样的PDF文件,有些时候我们还需要将PDF转换成Word和Txt文件,而这个时候就会出现一个问题转换好的文档,出现了很多莫名其妙的断行(如下图),这让人很头疼。这是因为PDF转换成文字时,往往没有智能到分析出哪些是一个段落、哪些是一个句子,它只能按照PDF每一页所显示的结果来直接转换成文字。通过多次尝试,我发现可以用计算机领域的“正则表达式”来轻松解决这个问题。正则表达式是一组描述文字的公式,通过对文字内容的分析,得出一个公式,然后利用这个公式可以轻松的对全文进行修正,这样一来就节省了极大的工作量。那么,接下来我将具体展示,如何利用正则表达式在我们常用的Word软件中处理PDF转换Word、Txt文件后的问题。首先,我们需要有一个PDF转换后的Word文档,如本例的无政府、国家与乌托邦.诺齐克这本书。在上图中我们可以看到,它的每个句子都被无情的拆开,加上了换行。下面我们就来针对这个问题处理。打开这个Word文档,按下按键Ctrl+H,调出“查找与替换”对话框,点击“更多”按钮,勾选“使用通配符”。然后在“查找内容”中输入:(13!13)(,,。??)(!。13)13在“替换为”中输入:13123(如下图)最后点击“全部替换”。然后我们可以看到刹那间,大多数的无理断行都被重新连接了。不过这里还有个小问题,就是由于Word软件目前的正则表达式功能并不够完善,因此有可能无法一次性处理完问题,我们会发现还有一些断行没有被处理。这时需要我们再多点击几次“全部替换”按钮,直到全部处理完毕为止。看,就是这么简单。当然,也许还有一些遗漏,这是因为书籍中的各种情况都会出现,我们很难智能到一次性就把所有无理断行都识别出来。但是我相信,走到这一步,已经可以为你节省不少功夫了。另外,如果你还想对文中的“无理空格”进行处理,可以依法炮制在“查找内容”中输入: q在“替换为”中不输入任何东西,如下图所示:这样一来,你也许可以看到你的文档已经更为接近原始的面貌了。下面,我将解释一下这个处理方式的原理。首先我们对无理断行的内容进行分析,会发现所有的无理断行都是未完结的句子,转换成程序语言就是句尾没有类似句号或问号的标识符。于是我们利用“(!。13)13”这个语句来表示没有句号的标识符,就可以搜索到所有这样的句子。而不幸的是我们还会搜索到一些不需要的句子,比如章节号一整行只有一个标题,也没有句号。但我们不要处理它,要排除它。于是我们需要告诉电脑只搜索句子,利用“(13!13)(,,。??)”这个表达式来搜索,其特征就是:有逗号、句号、问号等标识符。将整体链接起来,就成为了我们一开始所输入的那套公式。搜索到那些无理断行后,我们只需将行尾的换行去掉就完成了。最后,感谢正则表达式的设计者Unix之父,Ken Thompson。他的发明,让我们在电子生活中体验到了极大的好处。同时也希望对这个方法感兴趣的朋友们联系我,一起学习这个好用的工具。谢小波Leonard_2012年12月17日Word查找栏代码通配符一览表序号清除使用通配符复选框勾选使用通配符复选框特殊字符代码特殊字符代码or通配符1任意单个字符?任意单个字符?2任意数字#任意数字(单个)0-93任意英文字母$任意英文字母a-zA-Z4段落标记p段落标记135手动换行符l手动换行符l or 116图形g or 1图形g71/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指定范围外任意单个字符!x-z25手动分页符m指定范围内任意单个字符 - 26尾注标记e1个以上前一字符或表达式27域dn 个前一字符或表达式 n 28Unicode 字符Unnnnn个以上前一字符或表达式 n, 29全角空格u8195n 到 m 个前一字符或表达式 n,m 30半角空格32 or u8194所有小写英文字母a-z31批注a or 5所有大写英文字母A-Z32 所有西文字符1-12733所有中文汉字和中文标点!1-12734所有中文汉字(CJK统一字符)一-龥 or 一-35所有中文标点!一-龥1-12736所有非数字字符!0-9注:要查找已被定义为通配符的字符,该字符前键入反斜杠 。查找?、*、(、)、 、 等的代码分别是?、*、(、)、 。Word替换栏代码通配符一览表序号清除使用通配符复选框勾选使用通配符复选框特殊字符代码特殊字符代码or通配符0要查找的表达式 n1段落标记p段落标记p2手动换行符l手动换行符l3查找的内容&查找的内容&4剪贴板内容c剪贴板内容c5省略号i省略号i6全角省略号j全角省略号j7制表符t制表符t8长划线+长划线+91/4长划线()q1/4长划线()q10短划线()=短划线()=11脱字号脱字号12手动分页符m or 12手动分页符/分节符m13可选连字符(_)-可选连字符(_)-14不间断连字符(-)不间断连字符(-)15不间断空格s不间断空格s16无宽非分隔符z无宽非分隔符z17无宽可选分隔符x无宽可选分隔符x18分栏符n分栏符n19分节符%分节符 %20段落符号v段落符号vWord通配符用法详解1、任意单个字符:“?”可以代表任意单个字符,输入几个“?”就代表几个未知字符。如:输入“? 国”就可以找到诸如“中国”、“美国”、“英国”等字符;输入“?国”可以找到“孟加拉国”等字符。2、任意多个字符: “*”可以代表任意多个字符。如:输入“*国”就可以找到“中国”、“美国”、 “孟加拉国”等字符。 3、指定字符之一: “”框内的字符可以是指定要查找的字符之一,如:输入“中美国”就可以找到“中国”、“美国”。 又如:输入“thiug”,就可查找到“thigh”和“thug”。 输入“学硕博士”,查找到的将会是学士、士、硕士、博士。 输入“大中小学”可以查找到“大学”、“中学”或“小学”,但不查找“求学”、“开学”等。输入“高矮个”的话,Word查找工具就可以找到“高个”、“矮个”等内容。4、指定范围内的任意单个字符: “x-x”可以指定某一范围内的任意单个字符,如:输入“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、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”,可以找到“little”。 输入“te2n”,表示查找“teen”而不会查找“ten”。 输入“of2ice”,查找到的将会是office。7、指定前一字符、指定前一字符数范围:“x,x”可以用指定要查找字符中前一字符数范围,如:输入“cho1,2”,则说明包含前一字符“o”数目范围是1-2个,则可以找到“chose”、“choose”。8、一个以上的前一字符: “”可以用来指定要查找字符中包含一个以上的前一字符,如:输入“chose”,就可以找到, “chose”、“choose”等字符。9、指定起始字符串:“”可以用来指定要查找字符中的起始字符串,如:输入“ag”,就说明要查找的字符的起始字符为“ag”,可以找到 “ago”、“agree”、“again”等字符。输入“”可以用来指定要查找字符中的结尾字符串,如:输入“er”,就说明要查找的字符的结尾字符为“er”,可以找到 “ver”、“her”、“lover”等等。输入“en”, 就说明要查找到以“en”结尾的所有目标对象,可能找到“ten”、“pen”、“men”输入“up”,就说明要查找到以“up”结尾的所有目标对象,例如会找到“setup”、“cup”等等。11、表达式查找:“()”,尤其用于多个关键词的组合查找。键入“(America)(China)”,在“替换为”中键入“2 1”,Word找到“America China”并替换为“China America”。 输入“”,就表示查找的是所有以“江山”开头并且 以“多娇”结尾的字符串。另外为了更精确的查找,你还可以把以上的通配符联合起来使用,如:输入“”则表示查找所有以“ag”开头并且以“er”结尾的单词,注意这时需要用括号将来区分开不同的查找规则。最后还要注意如果要查找已经被定义为通配符的字符,如“*”、“?”等字符,必须在该字符前面加上反斜杠“”,如:输入“*”则表示查找字符“*”。 使用通配符搜索选中“使用通配符”复选框后,Word 只查找与指定文本精确匹配的文本(请注意,“区分大小写”和“全字匹配”复选框会变灰而不可用,表明这些选项已自动选中,您不能关闭这些选项)。 要查找已被定义为通配符的字符,请在该字符前键入反斜扛 (),例如,要查找问号,可键入“?”。序号查找内容通配符示例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个重复的前一字符或表达式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字符键入nnn,其中nnn是字符代码ANSIcharacter键入0nnn,其中nnn是字符代码长划线()键入+短划线()键入=脱字号键入手动换行符()键入l或键入11分栏符键入n或键入14分页符或分节符键入12(替换时,插入分页符)手动分页符键入m(当选中“使用通配符”复选框时,还将查找或替换分节符)不间断空格()键入s不间断连字符()键入可选连字符()键入-只能在“查找内容”框中使用的代码(选中“使用通配符”复选框时)图片或图形(仅嵌入)键入g只能在“查找内容”框中使用的代码(清除“使用通配符”复选框时)任意字符键入?任意数字键入#任意字键入$Unicode字符键入Unnnn,其中“nnnn”是字符代码图片或图形(仅嵌入)键入1脚注标记键入f或键入2尾注标记键入e域键入d正在打开域大括号(当域代码可见时)键入19正在关闭域大括号(当域代码可见时)键入21批注键入a或键入5分节符键入b全角空格(Unicode)键入u8195半角空格(Unicode)键入u8194白色空格键入w(可以是常规空格、不间断空格以及制表符的任意组合)只能在“替换为”框中使用的代码“Windows剪贴板”的内容键入c“查找内容”框的内容键入&选中“使用通配符”复选框后,Microsoft Word 不识别在“查找内容”框中输入的用于下列项目的代码:尾注和脚注标记、域、段落标记、分节符或空白区域。若要搜索这些项目,可以在“查找内容”框中键入下列替换代码。(注意,没有可用于域的替换代码)若要查找脚注或尾注标记 键入“2”注意,Word 无法区分脚注和尾注标记。若要查找段落标记 键入“13”若要查找分节符 键入“12”Word 将搜索手动分页符和分节符。查找空白区域键入“空格1,”使用正则表达式来查找和替换文本(高级)全部隐藏全部隐藏通过使用通配符构建“正则表达式”(即文本和通配符的组合),可以自动执行多个查找和替换任务。例如,您可以使用正则表达式从大型表格中查找和删除重复行,或者转置姓名列表(将它们从“名,姓”更改为“姓,名”)。本文内容术语试一试正则表达式如何工作要查找和替换的项目的通配符使用通配符查找和替换文本可用的通配符使用正则表达式示例 1:转置带中间名首写字母的姓名逐个查看表达式示例 2:转置日期逐个查看表达式关于在正则表达式中使用列表分隔符示例 3:向称呼添加句号,或从称呼删除句号示例 4:查找重复段落或行更多示例关于作者术语开始前,我们先定义一对术语:通配符指的是您可以用来代表一个或多个字符的键盘字符。例如,星号 (*) 通常代表一个或多个字符,问号 (?) 通常代表单个字符。对我们来说,正则表达式指的是您可以用来查找和替换文本模式的文本字符和通配符组合。文本字符指的是必须存在于目标文本字符串中的文本。通配符指的是目标字符串中可能各不相同的文本。 试一试!本节中的步骤介绍了如何使用正则表达式转置姓名。请记住,始终使用“查找和替换”对话框来运行您的正则表达式。同时请记住,如果表达式没有按预期工作,你始终可以按下 CTRL + Z 来撤销您的更改,然后尝试其他表达式。转置姓名启动 Word,然后打开一个新的空白文档。复制此表格,将它粘贴到该文档中。JOSH BARNHILLDoris HartwigTamara JohnstonDaniel Shimshoni在“开始”选项卡上的“编辑”组中,单击“替换”以打开“查找和替换”对话框。编辑组如果您没有看到“使用通配符”复选框,请单击“更多”,然后选中该复选框。如果您没有选中该复选框,Word 会将通配符视作文本。在“查找内容”框中键入以下字符。请确保您在两组括号之间包含了空格:() ()在“替换为”框中,键入以下字符。请确保您在逗号和第二个斜杠之间包含了空格:2, 1选择该表格,然后单击“全部替换”。Word 会转置这些姓名并使用逗号分隔它们,如下所示:BARNHILL, JOSHHartwig, DorisJohnston, TamaraShimshoni, Daniel此时,您可能会想知道:如果您的姓名中有一部分或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借证件办厂合同(标准版)
- 艺人仲裁合同(标准版)
- 采购月结合同(标准版)
- 2024年房地产项目销售策略与执行方案
- 新产品上市推广活动全程策划方案
- 物业安全防范预案与演练方案
- 农业产业链品牌建设实施方案
- 高效农业种植管理平台开发
- 汽车行业的智能网联汽车技术与应用推广
- 中学教师岗位职业规划方案
- 2025四川成都农商银行招聘综合柜员岗4人模拟试卷带答案详解
- 2025年辅警考试公共基础知识真题库(含答案)
- 2022版《义务教育数学课程标准》测试卷(完整版含答案)
- 2025行政执法人员考试题库含答案
- 联通校招测评题库及答案
- 儿科护理进修
- 2025年安防生产行业技能考试-安全防范系统安装维护员历年参考题库含答案解析(5套共100道单选合辑)
- 2024年西藏米林县人民医院公开招聘护理工作人员试题带答案详解
- 2025年新版保安员考试试题附(答案+解析)
- 2025年中级注册安全工程师《道路运输安全实务》考试真题及答案
- 监察法专题培训课件
评论
0/150
提交评论