正则表达式用法及实例

转载自 http://eskimo.blogbus.com/logs/29095458.html

觉得这篇不错,自己备用。什么时候忘了,重新回来温习。

正则表达式 实例
  制电子书,处理文本,都少不了用正则表达式,网上虽有很多教程,但都跟实战无关,越看越糊涂。今天在某软件说明文档中偶得一实用教程,搬来存档。

  1. 概述

  正则表达式原本是形式语言理论中的概念,与编译器的构造有密切的联系。但是作为一个应用软件的用户,我们没有必要去细究正则表达式的严格定义和处理方法。

  我们在处理文本时,经常会遇到一些具有某种特定格式,或者说满足某种规则的文本。比如,一个无符号的整数由一连串的数字构成,而一个Email地址的格式则是“用户名@主机名”,其中用户名是一串字母或数字,主机名则是由若干个由“.”分隔的字母数字串。正则表达式就是用来指定这种规则的。如果某个字符串满足正则表达式指定的规则,则称该字符串为正则表达式的一个“匹配串”。

  2. 正则表达式的构成

  为了方便理解,让我们先来看看大家比较熟悉的数学表达式,“(x+3)*2+y”是一个典型的数学表达式。一个数学表达式由若干个“项”组成,“项”与“项”之间用加号或减号相连;这里“(x+3)*2”和“y”分别是两个项。每个项又由若干个“因子”组成,因子之间用乘号或除号相连;这里第一个项有两个因子“(x+3)”和“2”,而第二个项只有一个因子“y”。每个因子可以是一个简单的数,一个代数变量,也可以是放在括号里面的另一个表达式,括号中的表达式称为“子表达式”。这里“x+3”就是一个子表达式。

  正则表达式的结构与数学表达式很相似。与数学表达式的“项”相对应,正则表达式由若干个“分支”构成,“分支”之间用符号“|”相连。从逻辑上讲,分支之间是一种“或”的关系,一个字符串只要与正则表达式中的任何一个分支相匹配,这个字符串就与整个正则表达式相匹配。比如,“第三人称代词”可以用正则表达式表示为“他|她|它|他们|她们|它们”。

  与数学表达式的“因子”相对应,构成正则表达式“分支”的部件称为“原子”。“原子”与“原子”之间没有任何符号相连。从逻辑上讲,原子之间是串接的关系,一个字符串必须与各个原子依次相匹配,才算与这个分支相匹配。比如在上面的例子中,分支“他们”由两个原子“他”和“们”组成。

  正则表达式的本质是它的“原子”可以有多种不同的形式。前面的例子是最简单的情形,即每个原子由一个普通字符组成。除此以外,“原子”还可以是特殊符号、通配符、字符集以及子表达式。

  2.1 特殊符号

  可以作为特殊符号的原子有:

  ^ 匹配行首。例如,“^他”匹配出现在行首的“他”
  字。值得注意的是,这个符号仅仅表示“行首”这个
  位置,与它相匹配的字符串长度为0;

  $ 匹配行末。与“^”相似,它仅表示“行末”这个位
  置。例如,“。$”匹配出现在行末的句号;

  < 匹配词首。词首的定义是紧接在非字母数字之后的第
  一个字母数字或下划线(_),汉字永远是词首。与“^”
  相似,它仅表示“词首”这个位置,匹配长度为0;

  > 匹配词尾。词尾是指紧接在字母数字或下划线之后的
  第一个非字母数字下划线,任一汉字之后也属于词尾。
  词尾的匹配长度也是0;

  \t TAB字符;

  \e ESC字符;

  2.2 通配符

  通配符是用一个符号(或几个符号组合)来匹配某一类满足条件的字符。可以使用通配符来查找字符是正则表达式的一大特点。TextPro支持下列通配符(注意大小写的区别):

  半角部分:
  .(句点) 匹配任何字符;
  \a 匹配任意英文字母;
  \~a 匹配除字母外的任意字符;
  \d 匹配任意数字;
  \~d 匹配除数字外的任意字符;
  \h 匹配任意词首字符(字母及下划线);
  \~h 匹配除字母及下划线以外的任意字符;
  \l 匹配任意小写字母;
  \~l 匹配除小写字母外的任意字符;
  \o 匹配任意八进制数字相匹配(0-7);
  \~o 匹配除八进制数字外的任意字符;
  \p 匹配任意半角标点符号;
  \~p 匹配除半角标点以外的任意字符;
  \s 匹配任意空白字符(空格、TAB);
  \~s 匹配任意非空白字符;
  \u 匹配任意大写字母;
  \~u 匹配除大写字母外的任意字符;
  \w 匹配可成词的字符(字母、数字及下划线);
  \~w 匹配成词字符外的任意字符;
  \x 匹配任意十六进制数字(0-9,a-f, A-F);
  \~x 匹配除十六进制数字外的任意字符;
  j 日文片假名
  J 日文平假名
  k 小写希腊字母
  G 大写希腊字母
  m 数学符号
  S 中文序号

  全角部分:
  \f 匹配任意双字节字符(汉字或全角符号);
  \~f 匹配任意单字节字符;
  \A 匹配任意全角ASCII字符;
  \b 匹配任意收录在BIG5码集中的双字节字符;
  \~b 匹配未收录在BIG5码集中的双字节字符;
  \c 匹配任意汉字(不包括符号);
  \~c 匹配非汉字的双字节字符;
  \D 匹配地支字符(子丑寅卯……);
  \g 匹配收录在GB码集中的双字节字符;
  \~g 匹配非收录在GB码集中的双字节字符;
  \k 匹配日文片假名;
  \K 匹配日文平假名;
  \m 匹配小写希腊字母;
  \M 匹配大写希腊字母;
  \n 匹配中文数字(一二三四……);
  \N 匹配大写中文数字(壹贰叁肆……);
  \P 匹配全角标点符号;
  \r 匹配小写俄文字母;
  \R 匹配大写俄文字母;
  \s 匹配数学符号;
  \S 匹配中文序号(⒈⒉⒊⒋……);
  \T 匹配天干字符(甲乙丙丁……);
  \V 匹配竖排标点符号;
  \y 匹配拼音字符;
  \Y 匹配注音字符;
  \Z 匹配制表字符;

  2.3 字符集

  字符集是用一对方括号[]括起来的字符串,用以匹配字符集中的任何一个字符。比如“[他她它]”匹配单数第三人称代词。如果方括号中的第一个字符是"^",则匹配除指定字符外的任何其它字符。在字符集中,还可以用"-"表示字符的范围,例如“[a-z]”匹配任何小写字母。注意尽量不要用“-”表示汉字的范围,因为汉字并没有公认的次序,TextPro目前是依据汉字内码来确定范围的。如果两个汉字的内码相差很大,将消耗大量的内存,运算也将非常缓慢。为了避免这种现象,TextPro中限制表示范围的起始与终止汉字必须位于同一区。如果字符集要包括字符“]”、“^”、“-”或“\”,可以在这些字符前加“\”。例如“[\^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或多次。例如“\h\w*”
  表示许多高级语言对“变量”的定义:以字母或下划
  线开头,后接任意多个字母数字或下划线;

  {n} 表示前一“原子”重复匹配n次。例如“\c啦{3}”
  匹配“哗啦啦啦”或“呼啦啦啦”等;

  {n,m} 表示前一“原子”重复匹配n至m次,其中n<=m。如果
  n>m,TextPro将自动交换m与n的值;

  {n,} 至少重复匹配n次,相当于{n,无穷大};

  {,m} 至多重复匹配m次,相当于{0,m};

  {} 重复任意多次,相当于*。

  在前面所述的各种重复指示符中,如果重复的次数不定,TextPro将匹配尽可能长的目标串(但最多不超过32767次,这是TextPro内设定的上限)。例如有一字符串“你好,我好,大家好”,表达式“你.*好”将匹配整个字符串,而不是“你好”或“你好,我好”。如果需要匹配尽可能短的目标串,可以采用前述的最后四种形式,并在“{”之后加上“-”号。上例中的表达式如改为“你.{-}好”,则匹配串为“你好”。

  {-n,m} 重复匹配m至n次,匹配次数尽可能少;

  {-n,} 至少重复匹配n次,匹配次数尽可能少;

  {-,m} 至多重复匹配m次,匹配次数尽可能少,相当于{-0,m};

  {-} 重复任意多次,类似于*,但匹配次数尽可能少。


  重复指示符只对紧邻在其前的“原子”起作用,例如“你好+”将匹配“你好”,“你好好”……。但是不会匹配“你好你好”。如果要重复匹配一组原子,可以使用括号(子表达式),如“(你好)+”就会匹配“你好你好”。

  需要指出的是,重复指示符与引用子表达式具有不同的含义。重复指示符是重复“匹配”,至于匹配的内容则可以不同;而引用子表达式则是重复匹配的内容。例如,“\d{2}”可以匹配任何一个两位数的整数,但是“(\d)\1”只能匹配“11”、“22”、“33”等数字相同两位数。当然,也可以重复引用子表达式,如“(\d)\1*”可以匹配“2”,“33”、“111”等各位数全同的整数。

  如前所述,在正则表达式中,以下字符“*?+.()[]{}\”具有特殊的含义。如果需要查找这些字符本身,可以在该字符前加一个反斜杠“\”。例如查“\def”可以输入“\\def”。

  3. 替换表达式

  3.1 特殊字符
  在进行替换时,也可以在替换串中使用一些特殊字符。目前TextPro支持的特殊字符有:
  \n 插入回车符。可以用这个字符把某些行分成两行或
  多行;

  \b 向前删除一个字符。当这个字符位于替换串之首时,
  将删除匹配串之前的一个字符。若匹配串位于行首,
  将使匹配串所在行与前一行相合并;

  \d 向后删除一个字符。当这个字符位于替换串之末时,
  将删除匹配串之后的一个字符。若匹配串位于行末,
  将使匹配串所在行与下一行相合并;

  \e 插入一个ESC字符;

  \t 插入一个TAB字符;

  也可以在替换串中引用查找串中的匹配到的子表达式。引用方法也是用“\1”、“\2”等。另外还可以用“\0”或“&”来引用整个匹配到的字符串。

  3.2 替换函数
  在替换串中还可以使用一组替换函数,来对查找到的内容做某种变换。替换函数的形式是\f{...},其中“f”是函数名,它是一个半角英文字母。花括号中的内容是函数的参数。例如,\u{a}表示把“a”转换为大写。目前TextPro支持三个替换函数,在后继版本中逐步增加。

  \u 转换为大写
  \l 转换为小写
  \U 首字母大写

  替换函数的参数部分可以略去不写。如果略去,默认的参数是查找到的内容,即\0。例如,要把文中所有英文单词的首字母大写,可以查找“<\a+>”,并替换为“\U{\0}”,替换串也可以简写为“\U”

  4. 自定义替换功能

  TextPro 4.5提供了自定义替换功能。所谓自定义替换,其实是一张替换表,它把某个字符串对应转换为另外一个字符串,比如把汉字转换为拼音。

  替换表是一个文本文件,它的每一行指定一个转换关系。行由两栏组成,栏与栏之间用一个(或多个)空格(或TAB)分开。第一栏是源字符串,第二栏是目标字符串。如果源串或目标串中需要包含空格,可以把串用半角的单引号或双引号括起来。例如把汉字转为拼音的自定义替换表可以这样写

  中 zhong1
  国 "guo2"
  大 da4
  ...

  替换表中的最好不要有重复的源串,如有重复,TextPro只取最后出现的那对转换关系。

  替换表准备好后,选择菜单“设置|自定义替换表”来设置替换表。TextPro允许定义多达10张替换表。首先选择一个位置,使那一行被选中,然后按“文件”按钮,即可装入这张替换表。你也可以为这张替换表起个名字,按“命名”按钮可以输入名称。“过滤”按钮与替换函数有关,等一下再作介绍。设置完以后,按“退出”钮结束。

  现在,选择菜单“编辑|自定义替换”,可以看到弹出的下级菜单中有一项功能被开启了,菜单项的名称就是刚才给替换表起的名称(如果没有起名称,默认的菜单名称是“自定义替换n”)。选择这项功能,将把出现在当前文件中的所有源串按替换表替换为目标串。

  4.1 在查找/替换中使用自定义替换表
  有的时候,上述简单的自定义替换功能是不够的。例如,用户可能希望只把出现在括号内的源串替换为目标串。这种文本处理可以通过在查找/替换中使用自定义替换表来解决。

  在查找/替换功能中使用自定义替换表的替换函数是\Tn,其中n是0-9的数字, 注意n为0表示第10张替换表。如果略去n,其效果相当于\T1,即使用第一张替换表。例如要把所有放在方括号中的汉字替换为拼音,可以查找“\[(\c)\]”,替换为“\T{\1}”。即把第一个子表达式的匹配内容按自定义替换表转换。注意,如果\T函数的参数不在替换表的源串中,\T函数的结果与源串相同,即不做任何变换。

  有些情况下,用户可能希望只使用替换表的一部分内容。还是以拼音为例,前面给出的替换表中包含了拼音的音调,如果在替换时不希望加上这些音调数字,可以使用“过滤”功能。所谓过滤,其实是用一个正则表达式去分析替换表的目标串,并把其中的某个子表达式取出来。

  使用“过滤”时,在“设置自定义替换表”对话框中,点“过滤”按钮,在弹出的对话框中填入一个正则表达式。再以拼音为例,表达式可以写为“(\a+)(\d?)”,其中第一对括号中的是不含音调的拼音,第二对括号是音调。在调用\T函数时,TextPro会在目标串中查找这个正则表达式。但是如何把其中的子表达式取出来呢?\T函数还有一个可选的下标,取第n个子表达式的值就写作\T{...}[n]。所以,把放在方括号中的汉字替换为不带调的拼音,可以查找“\[(\c)\]”,替换为“\T{\1}[1]”

  5. 应用举例

  例一:在TextPro的制作过程中,我们需要整理许多资料。例如简转繁的资料是一个文本文件,每行两个汉字,前一个为简体字,后一个为繁体字。但是有不少行简繁体其实是同一个字,我们希望将其剔除。

  操作办法:用替换功能,在“查找”中输入“(\c)\1”,在替换中输入“\d”。

  分析:“\c”匹配任一汉字,“\1”是引用子表达式,因此上面的正则表达式表示查找连续两个相同的汉字。在替换时输入“\d”,表示将找到的两个汉字替换成空串,并删除下一个字符。由于文件中每行只有两个汉字,删除下一个字符其实就删掉了行末的回车符,其结果把这些无用的行全部清除。


  例二:某文件由一些有用的资料及注释组成。注释单独成行,并以“#”开头。现在希望将所有的注释行删除。

  操作办法:用替换功能,在“查找”中输入“^#.*$”,在替换在输入“\d”。

  分析:^匹配行首,^#表示行首有符号#,.*匹配#之后的所有字符,直到行末($)。这个表达式将整行匹配所有以#开头的行。替换成“\d”将把这些行清除。


  例三:有一个从“输入法生成器”反编译出来的拼音表,其中有单字的拼音,也有词组的拼音。现在希望把单字的拼音和词组的拼音分开。已经文件的格式是每行一个字或词组,行首是汉字或词组,其后紧跟拼音。

  操作办法:用替换功能,查找“^\c\c+\~f+”,替换为“\d”,就得到了一份单字的拼音表,另存为“单字.txt”后,按Ctrl+Z(UNDO)撤消刚才的操作,再用替换功能,查找“^\c\~f+”,替换为“\d”,就得到了词组的拼音表,可另存为“词组.txt”。

  分析:“\c\c+\~f+”匹配行首以汉字开头,跟着一个以上的汉字,再跟着一个以上任意半角字符的行,也就是所有的词组行,替换为“\d”把这些行删除,得到的是单字的拼音表;“^\c\~f+”匹配以一个汉字开头,紧跟着一个以上任意半角字符,这些正好是单字的拼音行,删除后即得词组的拼音表。


  例四:组字符转GBK汉字。有些文本中使用一种组字规则来表示某些罕用的汉字,如用“[門@(人/(人*人))]”表示“閦”。这些汉字大部分收在GBK字符集中,现在希望将它们转换成相应的GBK汉字。

  这项工作可以用自定义替换来完成。先准备一份组字规则表,例如TextPro中就附带了这样一份转换表,现有461个组字。在“设置自定义替换表”中,将此表装入,可命名为“组字符转GBK汉字”。然后分两步完成:
  1、查找\[(.{-1,})\],替换为[\T{\1}]。结果分为两种,第一种如[閦],第二种如[合*牛]。
  2、查找\[(\c)\],替换为\1. 这样对第一种可去掉括号,而第二种可保持原样。

  例五:汉字注拼音。有一份文本,现在要给每个汉字注上拼音,格式为

  中(zhong阴平) 国(guo阳平) 人(ren阳平)...

  我们可能用自定义替换来解决这个问题。需要用到两张自定义替换表。第一张是拼音表,其格式为

  中 zhong1
  国 guo2
  人 ren2
  ....

  另一张表是音调名称,一共5行

  1 阴平
  2 阳平
  3 上声
  4 去声
  5 轻声

  在“设置自定义替换表”中,把拼音表设为第一张替换表,并输入“过滤”表达式“(\a+)(\d)”;再把音调表设置为第二张替换表。

  好了,现在查找“\c”,替换为“\0(\T[1]\T2{\T[2]})”即可完成注音工作。

  分析:替换串的第一个“\0”表示把这个汉字再写一遍,括号里的“\T[1]”相当于“\T1{\0}[1]”,它从第一张表中查找匹配到的汉字,并把对应的拼音用过滤表达式做一次查找,取查找结果的第一个子表达式;“\T2{\T[2]}”是一个嵌套的替换函数调用,内层的“\T[2]”是取音调数字,然后再以这个音调数字为参数,查找第二张替换表,得到该音调的中文表示。

  总而言之,正则表达式和自定义替换是两项非常有用的功能,经过适当的组合,可以完成的功能几乎是无限的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
textpro6.5版 属于textpro6系列。支持Unicode。支持正则表达式。处理速度极快。是目前流行最好用的文本编辑器(之一)。内附使用说明及正则表达式手册。 主要功能 1. BIG5(BIG5+)码文件与GBK码文件相互转换 TextPro可以将13083个BIG5码和约21500个BIG5+码汉字与GBK码相互转换,转码数量在同类软件中最大。除了一对一的汉字转换外,内部转换时还采取了以词组选择多义字的方法以尽量减少转换错误;随后用户还可在自动转码后采用人工干预的“复选”操作,对最常见的转换错误进行审核。(用户还可自定义某学科的专用字替换表,详见“汉字转换说明”文件。) 由于Windows系统只支持BIG5码,不支持BIG5+码,我们决定从5.0正式版中舍弃GBK转BIG5+。 2. GBK码繁体与简体相互转换 与第1种功能结合,可以实现BIG5(BIG5+)至GBK简体优先的内码转换。 示例如下:(下面BIG5码字符显示为乱码,可用中文平台显示原来的字。) BIG码字符:竒阶疘簄宫履卅 转为GB码:经论、涅盘、阿僧只劫、金刚萨□(有错漏字) 转为GBK码:經論、涅槃、阿僧祇劫、金剛薩埵(不合国标) 再繁转简:经论、涅槃、阿僧祇劫、金刚萨埵(符合国标) GBK码繁简体转换与BIG5+/GBK转换功能分开执行可以适应一些特殊的需求,也为今后UNICODE的发展趋势做好了准备。 简体转繁体中解决了大部分一对多的难题,但对复杂情形和古文还不适用,只能起到参考作用。详见“汉字转换说明”文件。 3.强化的查找/替换功能(正则表达式和自定义替换) TextPro推出支持双字节的正则表达式和首创的自定义替换,功能十分强大。经过适当的组合,可以完成的功能几乎是无限的。详见“正则表达式和自定义替换说明”。 4.合并文件 Windows环境下合并文件的软件较少。TextPro能实现Windows环境中比较完善的文件合并功能。 TextPro有两种合并文件的操作方法。 一是半自动合并文件:单击“文件|合并文件”,选择文件,排序,填好合并后的文件名,然后单击“合并”; 二是自动合并文件:对有规律的文件名可以使用。例如有文件“001_001.txt”,“001_002.txt”……,“002_001.txt”,“002_002.txt”……,可以单击“文件|自动合并文件”,对其中的源文件输入正则表达式“(\d+)_(\d+)\.txt”,目标文件名为“\1.txt”,排序关键字为“\2”,则所有以001开头的文件合并为001.txt,以002开头的所有文件合并为002.txt。 5.文件比较 能够直观对比两个文件内容异同的软件较罕见。TextPro可以在窗口中打开两个文件,在“窗口”菜单选择“平铺”,分别单击每个文件内容中相同的启始位置,然后连续按键盘上的“F5”按键开始比较。 发现不同字符时,程序在下方状态栏提示不相同的字符及其位置,当前激活的文件中,光标自动移到不相同的字符处,以便直接编辑,另一个未激活文件窗口的显示位置自动随之移动。 比较时自动忽略回车和半角空格,还有“忽略全角标点符号”和“忽略半角符号”的选项。 如果在比较中失去正确的位置对应,请分别在两个文件中重新设定往下比较的起始位置。 6.批处理 除了第5项功能之外,TextPro可以同时对多个文件进行多步骤批处理。支持多层目录操作和文件备份。 TextPro还有许多特点,可在程序的帮助文件中看到,不一一例举了。TextPro是根据实际需求逐渐增加功能而发展起来的。只要灵活组合各种功能,即可实现汉字转换、文本处理和网页编辑的多种要求。 7.文字编辑 具有比Notepad更好的编辑功能,不受文件大小的限制。 ●下载与反馈● TextPro是一个免费软件。下载、解压后的TextPro.exe程序可直接使用,无须安装。 TextPro可以定制字体的显示颜色和换行方式。TextPro还提供一种GBK显示字库,在非简体中文WINDOWS时可以改善字体的美观性。 欢迎大家测试,以便推出更好用的TextPro 版本。若您有什么建议和意见,可发e-mail给我们。
看到有人发TP6.5版要分7分太狠了点,也不厚道。我从作者那里拿到最新版,分享给大家。 textpro6.5版 属于textpro6系列。支持Unicode。支持正则表达式。处理速度极快。是目前流行最好用的文本编辑器(之一)。内附使用说明及正则表达式手册。 主要功能 1. BIG5(BIG5+)码文件与GBK码文件相互转换 TextPro可以将13083个BIG5码和约21500个BIG5+码汉字与GBK码相互转换,转码数量在同类软件中最大。除了一对一的汉字转换外,内部转换时还采取了以词组选择多义字的方法以尽量减少转换错误;随后用户还可在自动转码后采用人工干预的“复选”操作,对最常见的转换错误进行审核。(用户还可自定义某学科的专用字替换表,详见“汉字转换说明”文件。) 由于Windows系统只支持BIG5码,不支持BIG5+码,我们决定从5.0正式版中舍弃GBK转BIG5+。 2. GBK码繁体与简体相互转换 与第1种功能结合,可以实现BIG5(BIG5+)至GBK简体优先的内码转换。 示例如下:(下面BIG5码字符显示为乱码,可用中文平台显示原来的字。) BIG码字符:竒阶疘簄宫履卅 转为GB码:经论、涅盘、阿僧只劫、金刚萨□(有错漏字) 转为GBK码:經論、涅槃、阿僧祇劫、金剛薩埵(不合国标) 再繁转简:经论、涅槃、阿僧祇劫、金刚萨埵(符合国标) GBK码繁简体转换与BIG5+/GBK转换功能分开执行可以适应一些特殊的需求,也为今后UNICODE的发展趋势做好了准备。 简体转繁体中解决了大部分一对多的难题,但对复杂情形和古文还不适用,只能起到参考作用。详见“汉字转换说明”文件。 3.强化的查找/替换功能(正则表达式和自定义替换) TextPro推出支持双字节的正则表达式和首创的自定义替换,功能十分强大。经过适当的组合,可以完成的功能几乎是无限的。详见“正则表达式和自定义替换说明”。 4.合并文件 Windows环境下合并文件的软件较少。TextPro能实现Windows环境中比较完善的文件合并功能。 TextPro有两种合并文件的操作方法。 一是半自动合并文件:单击“文件|合并文件”,选择文件,排序,填好合并后的文件名,然后单击“合并”; 二是自动合并文件:对有规律的文件名可以使用。例如有文件“001_001.txt”,“001_002.txt”……,“002_001.txt”,“002_002.txt”……,可以单击“文件|自动合并文件”,对其中的源文件输入正则表达式“(\d+)_(\d+)\.txt”,目标文件名为“\1.txt”,排序关键字为“\2”,则所有以001开头的文件合并为001.txt,以002开头的所有文件合并为002.txt。 5.文件比较 能够直观对比两个文件内容异同的软件较罕见。TextPro可以在窗口中打开两个文件,在“窗口”菜单选择“平铺”,分别单击每个文件内容中相同的启始位置,然后连续按键盘上的“F5”按键开始比较。 发现不同字符时,程序在下方状态栏提示不相同的字符及其位置,当前激活的文件中,光标自动移到不相同的字符处,以便直接编辑,另一个未激活文件窗口的显示位置自动随之移动。 比较时自动忽略回车和半角空格,还有“忽略全角标点符号”和“忽略半角符号”的选项。 如果在比较中失去正确的位置对应,请分别在两个文件中重新设定往下比较的起始位置。 6.批处理 除了第5项功能之外,TextPro可以同时对多个文件进行多步骤批处理。支持多层目录操作和文件备份。 TextPro还有许多特点,可在程序的帮助文件中看到,不一一例举了。TextPro是根据实际需求逐渐增加功能而发展起来的。只要灵活组合各种功能,即可实现汉字转换、文本处理和网页编辑的多种要求。 7.文字编辑 具有比Notepad更好的编辑功能,不受文件大小的限制。 ●下载与反馈● TextPro是一个免费软件。下载、解压后的TextPro.exe程序可直接使用,无须安装。 TextPro可以定制字体的显示颜色和换行方式。TextPro还提供一种GBK显示字库,在非简体中文WINDOWS时可以改善字体的美观性。 欢迎大家测试,以便推出更好用的TextPro 版本。若您有什么建议和意见,可发e-mail给我们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值