分享

UltraEdit使用指南

 思奇剑 2008-06-26
UE copy后就可以使用,但是没有右键点击后用UE打开的功能,这个注册表是以前收集的,copy一下,修改

  @=”D:ProgUltraEditue32ctmn.dll”

  为你的系统值,令存为.reg文件,导入注册表即可。

  REGEDIT4

  [HKEY_CLASSES_ROOT*shellexContextMenuHandlersUltraEdit-32]

  @="{b5eedee0-c06e-11cf-8c56-444553540000}"

  [HKEY_CLASSES_ROOTCLSID{b5eedee0-c06e-11cf-8c56-444553540000}]

  [HKEY_CLASSES_ROOTCLSID{b5eedee0-c06e-11cf-8c56-444553540000}InProcServer32]

  @="D:ProgUltraEditue32ctmn.dll"

  "ThreadingModel"="Apartment"

  删除空行的正则表达式

  用UltraEdit打开文件后,选择Search菜单的Replace命令。

  在Replace对话框中,选中Regular Expression复选框,

  并在Find what中输入:%[ ^t]++^p,注意^t之前有空格。

  该表达式字符含义与EditPlus的相对应。然后,单击Start或Replace All按钮,进行替换删除空行。

  编辑远程档案

  File/Ftp/ Open from FTP or Save as FTP

  这一个选项,可以让大家通过FTP来修改server上的档案。其中更酷的,不知道大家有没有发觉,也可以透过ssh来修改远程的档案。不过通过ssh这一项功能,是到UltraEdit10才有的功能。不过这项功能有潜在的危机,就是同份档案被两个人同 时开启修改………..请谨慎使用

  搜寻,取代文件中的文字Search/ Find in Files(搜寻件中的文字) Replaces in Files(取代件中的文字),这两个功能,可以让用户针对某个目录下(包含子目录)大量件的搜寻,取代。比如今天,某个jsp网页中 include近来的档名有错,需要更改,难道大家还要一个档案一个档案的打开,然后搜寻取代文字吗,就用这个功能 来帮你完成这些事吧。

  宏定义功能

  将某个快捷键定义成要用的宏。。可以快速重复复杂的编辑操作

  强大的列编辑

  Editpad稍逊一筹,EP和EM就差太多了。列块的选择,处理几十兆甚至过百M的文本,鼠标选择列块肯定不行:d

  ue提供了选择范围输入行列的起始范围就ok,不过仍然要查行数列数,麻烦。用快捷键选择最快

  快捷键:Ctrl、Shift、Home、End、←、→

  先Alt+c切换到列模式,光标放至列起始位置,Ctrl+Shift+End,选择完毕,反向选择则将End换为方向键,一列一列的选则按Shift+方向键。
 
都是些很简单的技巧,不过是自己摸索出来,记录一下。我用的版本是UltraEdit-32 13.00a 简体中文版。

  1、去重

  如果文本中的数据是一行一行的,有重复的内容,去重的方法是:文件——排序——高级排序/选项,选中“删除重复”。

  2、查找后乱码

   将文件另存为“UTF-16”格式的文本。代码页要设置成:

   高级——设置代码页/本地,“系统中已安装的代码页”,选择“936(ANSI/OEM-简体中文GBK)”;

  “系统已安装的地区”选择"中文(中国)中国人们共和国"。

  3、查找任意汉字

  选择Unix风格的正则表达式,查找 “[^一-龥]”。代码页设置如上。

  4、使用正则表达式,去除空行、行尾空格

   UltraEdit有两种传统形式的正则表达式:UltraEdit风格、Unix风格。设置在:高级——配置——搜索——正则表达式引擎。

  UltraEdit风格正则表达式:

  去除空行:    %[ ^t]++^p  替换为 空白(就是什么也不输入)

  去除行尾空格:   [ ^t]+$     替换为 空白

  Unix风格正则表达式:

  去除空行:    ^[   ]*      替换为 空白

  去除行尾空格:   [   ]+$     替换为 空白

  5、在UltraEdit风格正则表达式中,有个星号(*),功能是匹配任何除换行符外所出现的任意数量的字符。但在Unix形式正则表达式

  中却没有相应的符号,可以用 .* 来代替。

  .

  

  匹配任何除换行符之外的单个字符。不匹配重复的换行符。

  

  *

  

  匹配前面的字符 0 次或多次。

  

  6、如果一些操作是重复性的,可以用UltraEdit的宏来完成。 我常用的是查找后删除、或者复制。

  6.1 查找后删除

InsertMode
ColumnModeOff
HexOff
UnixReOn
  
Top
Loop
Find RegExp "要查询的内容"
IfFound
DeleteLine
EndLoop
Top
EndIf

  6.2 查找后复制

InsertMode
ColumnModeOff
HexOff
UnixReOn
NewFile
PreviousWindow
Top
ClearClipboard
Loop
Find RegExp "要查询的内容
IfFound
Copy
NextWindow
Paste
InsertLine
PreviousWindow
EndLoop
EndIf
 
删除空行:替换%[^t]++^p为空串

  删除行尾空格:替换[^t]+$为空串

  删除行首空格:替换%[^t]+为空串

  每行设置为固定的4个空格开头:替换%[^t]++^([~^t^p]^)为"^1"

  每段设置为固定的4个空格开头:替换%[^t]+为""

  (如果一行是以空格开始的,则视之为一段的开始行)

  将一段合并为一行:替换[^t]++^p^([~^t^p]^)为^1

  (注意:此处假定文本是以DOS方式回车换行-CR/LF)

  去掉HTMLTAG:替换^{<*>^}^{<*^p*>^}为空串

  删除HTML中的所有:替换<[]++a*[]++href[]++=*>为空串

  删除文本中指定的前2列字符:替换%??为空串

  在第4列后插入2列空白字符:替换%^(????^)^(?^)为"^1^2"

  查找所有的数字:[0-9]+[.]++[0-9]+

  查找所有的单词:[a-z]+

  查找所有的网址:http://[a-z0-9^~`_./^-^?=&]+

  注意:替换的时候需要勾选使用正则表达式选项
很多朋友都用过或者正在用UltraEdit,这个编辑器陪伴我也好几年了,从很多地方影响着我写代码的快捷键习惯,Ultraedit提供了非常丰富的编辑功能,其中非常重要的查找和替换功能一定大家都用过,Ultraedit提供的查找替换功能非常方便和强大,可以在单独文件里面查找替换,也可以在多个文件、多个目录里面进行查找替换。而我们在使用这些查找替换功能的时候,一般都是针对某个字符串进行,前两天我要对一个目录下(包含子目录)所有的html文件中某一段代码进行查找替换,一下子不知道怎么操作了,由于长期写程序用到正则表达式,于是猜想具备如此强大功能的Ultraedit一定也有这样类似的匹配功能,于是点击Help一看,果然不出所料,Ultraedit支持基本的正则表达式匹配查找和替换功能,这能满足我们几乎全部的需要了。

  下面是对UltraEdit的Help中针对查找替换使用正则表达式部分的整理,最后还有我前两天用到的一个多行代码查找替换的例子。

  Ultraedit在使用正则表达式进行查找替换时有两个可使用的语法集合。一个是 UltraEdit 的更早的版本被使用的原来的 UltraEdit 句法。另一个是”Unix”类型的正则表达式,这个集合在ultraedit的默认配置中是没有启用的,需要在配置中找到search项,启用Unix类型的正则表达式。

  语法集合一:

  符号 功能

  %  匹配行的开始 - 显示搜索字符串必须在行的开始,但是在所选择的结果字符串中不包括任何行终止字符。

  $  匹配行尾 - 显示搜索字符串必须在行尾,但是在所选择的结果字符串中不包括任何行终止字符。

    除了换行符以外匹配任何单个的字符

  *  除了换行符匹配任何数量的字符和数字

  +  前一字符匹配一个或多个,但至少要出现一个
++  前一字符匹配零个或多个,但至少要出现一个

  ^b  匹配一个分页

  ^p  匹配一个换行符(CR/LF)(段)(DOS文件)

  ^r  匹配一个换行符(CR 仅仅)(段)(MAC 文件)

  ^n  匹配一个换行符 ( LF 仅仅 )( 段 )( UNIX 文件 )

  ^t  匹配一个标签字符TAB

  []  匹配任何单个的字符,或在方括号中的范围

  ^{A^}^{ B^} 匹配表达式A或 B

  ^  重载其后的正规表达式字符

  ^(^) 括或标注为用于替换命令的表达式。

  一个正则表达式最多可以有9个标注表达式, 按正规表达式的需要而定。

  相应的替换表达式是 ^x , 替换范围x是1-9。例如:

  If ^(h*o^) ^(f*s^) matches “hello folks”,

  ^2 ^1 would replace it with “folks hello”.

  (hello folks 将被替换成 folks hello。)

  注: ^ 是实际字符 ^不是Ctl + 键值。

  例如:

  m?n 匹配 “man”,”men”,”min” 但不匹配 “moon”.

  t*t 匹配 “test”,”tonight” 和 “tea time” (the “tea t” portion) 但不匹配 “tea

  time” (newline between “tea ” and “time”).

  Te+st 匹配 “test”,”teest”,” teeeest “等等。但是不匹配 “tst”。

  [aeiou] 匹配每个小写元音。

  [,.?] 匹配一文字的 “,”,”.”或 “?”。

  [0-9, a-z] 匹配任何数位,或小写字母。

  [~0-9] 除了数字以外匹配任何字符 (~ 意味着”不”)
你按如下方式可以查找一个表达式A或 B :

  “^{John^}^{Tom^}”

  这将在找John或Tom的出现。应该在 2 个表达式之间没有任何东西。

  你可以在同一搜索中按如下方式组合A or B and C or D:

  “^{John^}^{Tom^}^{Smith^}^{Jones^}”

  这将在John or Tom 后面找 Smith or Jones。

  语法二:”Unix”句法类型的正则表达式

  符号    功能

  标记下一个字符作为一个特殊的字符。

  "n"    匹配字符"n"。"n" 一个换行符或换行符字符。

  ^     匹配/定位行的开始。

  $     匹配/定位行的尾。

  *     匹配前面的字符零次或多次。例

  +     匹配前面的字符一次或多次。例

  .     匹配除了一个换行符字符匹配任何单个的字符。

  (expression)标注用于替换命令的表达式。一个正则表达式根据需要,最多可以有9个标注表达式。相应的代替表达式是 x , x的范围是 1-9 。

  例如:

  If (h.*o) (f.*s) matches "hello folks",

  2 1 would replace it with "folks hello".

  (hello folks 将被替换成 folks hello。)

  [xyz]   一个字符集。匹配在方括号之间的任何字符。

  [^xyz]   一个否定的字符集。不匹配在方括号之间的任何字符。

  d     匹配一个数字字符。等价于[0-9]。

  D     匹配一个非数字字符。等价于[^0-9]。

  f     匹配一个换页字符。

       匹配一个换行字符。

       匹配一个回车符字符。

  s     匹配任何空白的空格, 标签, 换页, 包括空格等等,但不匹配换行符。
S     匹配任何非空白的字符,但不匹配换行符。

  匹配一个标签TAB字符。

  v     匹配一个垂直的标签字符。

  w     匹配任何词语字符包括下划线。

  W     匹配任何非词语字符字符。

  注: ^ 是实际字符 ^不是Ctl + 键值。

  例如:

  m.n 匹配 “man”,”men”,”min” 但不匹配 “moon”.

  t+t 匹配 “test”,”tonight” 和 “tea time” (the “tea t” portion) 但不匹配 “tea

  time” (newline between “tea ” and “time”).

  Te*st 匹配 “test”,”teest”,” teeeest “等等。但是不匹配 “tst”。

  [aeiou] 匹配每个小写元音。

  [,.?] 匹配一文字的 “,”,”.”或 “?”。

  [0-9,a-z] 匹配任何数位,或小写字母。

  [^0-9] 除了数字以外匹配任何字符 (~ 意味着”不”)

  你按如下方式可以查找一个表达式A或 B :

  “(John)|(Tom)”

  这将在找John或Tom的出现。应该在 2 个表达式之间没有任何东西。

  你可以在同一搜索中按如下方式组合A or B and C or D:

  “(John|Tom) (Smith|Jones)”

  这将在John or Tom 后面找 Smith or Jones。

  另外:

  p 匹配 CR/LF ( 作为 rn 的一样 ) 作为DOS行结束符匹配

  如果查找/替换功能中正则表达式没有选用,则替换字段中下列字符也是有效的:

  符号 功能

  ^^ 匹配一个 “^” 字符

 

  ^s 替换为被选择 ( 加亮 ) 活跃的文件窗口的文章。

  ^c 替换为剪贴板的内容

  ^b 匹配一个页裂缝

  ^p 匹配一个换行符 ( CR/LF )( 段 )( DOS 文件)

  ^r 匹配一个换行符 ( CR 仅仅 )( 段 )( MAC 文件)

  ^n 匹配一个换行符 ( LF 仅仅 )( 段 )( UNIX 文件)

  ^t 匹配一个标签TAB字符

  下面是我要实现的一段代码查询替换的举例

  有这样一段代码分布在各个html文件中

  <!-- Copyright ?2005. toplee Ltd -->

  <style>

  A.applink:hover {border: 2px dotted #DCE6F4;padding:2px;background-color:#ffff00;color:green;text-decoration:none}

  A.applink   {border: 2px dotted #DCE6F4;padding:2px;color:#2F5BFF;background:transparent;text-decoration:none}

  A.info     {color:#2F5BFF;background:transparent;text-decoration:none}

  A.info:hover  {color:green;background:transparent;text-decoration:underline}

  </style>

  <div style=‘BORDER: 1px solid #DCE6F4; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; MARGIN-LEFT: 5px;

  .... 省略若干行....

  <!-- /Copyright ?2005. toplee Ltd -->

  我要把上面一段代码替换为空,于是编写下面的匹配规则

  <!-- Copyright[^!]*[^>]*>

  即完成了全部替换。

  大家可以在今后的编码中尝试一下Ultraedit的正则表达式查找替换功能,非常简单快捷!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 全屏 打印 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多