
UE中使用正则表达式的一些技巧.docx
19页UE 正则表达式 说明UltraEdit允许在搜索菜单下面列出的大多数搜索和替换功能中 使用正则表达式正则表达式允许在一次操作中执行多个组合搜索和替换功能这里有两个可以使用的语法集下面的第一个表显示用于早期UltraEdit的原始UltraEdit语法第二个表显示可选的“UniX样 式的正则表达式这可以从配置段启用正则表达式(UltraEdit语法):符号功能%匹配行首-表示搜索字符串必须在行首,但不包括任何选定的 结果字符中的行终止字符匹配行尾-表示搜索字符串必须在行尾,但不包括任何选定的 结果字符中的行终止字符匹配任何除换行符的字符匹配任何除换行符外所出现的任意数量的字符匹配一个或多个前面的字符/表达式必须找到至少一个出现的 字符不匹配重复的换行符0次或多次匹配前面的字符/表达式不匹配重复的换行符Ab匹配一个分页符八P匹配一个换行符(CR/LF)(段落)(DOS文件)Ar匹配一个换行符(仅CR)(段落)(MAC文件)An匹配一个换行符(仅LF)(段落)(UNIX文件)At匹配一个制表符[]匹配任何括号中的单个字符或范围A{AA}A{BA}匹配表达式A或BA忽略其后的正则表达式字符A(*A)在表达式加上括号或标签在替换命令中使用。
正则表达式中可以 有9个表达式标签,数字根据它们在正则表达式中的次序确定 数字相应的替换表达式是Ax,x的范围是1-9例如:如果A(h*oA)A(f*sA)匹配“hello folks”,那么八2八1表示将用“folks hello”替换 它注意-A这里涉及的字符“八”不是控制键+值例如:m?n 匹配“man”、“men”、“min”,但不匹配“moon”t*t 匹配“test”、“tonight”和“tea time”中的“tea t”部分,但不匹配 “teatime”(“tea ” 和 “time ”之间有换行)Te+st 匹配“test”、“teest”、“teeeest”等,但不匹配“tst”[aeiou]匹配每个元音小写字母[,.?]匹配文字“,”、“•”或?[0-9a-z]匹配任何数字或小写字母[~0-9]匹配除数字外的任何字符(~表示不匹配其后的内容)你可以搜索象下面一样的表达式A或B:"A{JohnA}A{TomA}这将搜索John或Tom在两个表达式之间应该没有任何其它 内容你可以在同一次搜索象下面一样组合A或B和C或D:"A{JohnA}A{TomA} A{SmithA}A{JonesA}"这将搜索后面跟随了 Smith或Jones的John或Tom。
下面的表显示“U nix ”样式的正则表达式语法正则表达式(Unix语法):符号 功能 表示下一个字符有特殊含义n”表示匹配字符“n”, “\n”匹配一换 行符看下面的例子(\d、\f、\n等)A匹配/停驻行首匹配/停驻行尾匹配前面的字符0次或多次匹配前面的字符一次或多次不匹配重复的换行符■匹配任何除换行符之外的单个字符不匹配重复的换行符表达式)在表达式加上括号或标签在替换命令中使用正则表达式中可以 有9个表达式标签,数字根据它们在正则表达式中的次序确定 数字相应的替换表达式是Ax, x的范围是1-9例如:如果A(h*oA)A(f*sA)匹配“hello folks”,那么八2八1表示将用“folks hello”替换 它[xyz]字符集,匹配任何括号间的字符[Axyz]排除字符集匹配任何不在括号间的字符\d匹配一个数字字符等同于[0-9]\D匹配一个非数字字符,等同于[八0-9]\f匹配一个换页符\n匹配一个换行符\r匹配一个回车符\s匹配任何包含空格、制表符等不会显示的字符,但不匹配换行符\S匹配任何非空白区域(显示字符)的字符,但不匹配换行符\t匹配一个制表符\v匹配一个垂直制表符。
\w匹配任何包含下划线的词语\W匹配任何非词语的字符\P匹配CR/LF (等同于\r\n),用来匹配DOS行终止符注意-八这里所涉及的字符“八”不是控制键+值例如:m.n 匹配“man”、“men”、“min”,但不匹配“moon”Te+st 匹配“test”、“teest”、“teeeest”等,但不匹配“tst”Te*st 匹配“test”、“teest”、“teeeest”等,还有“tst”[aeiou]匹配每个元音小写字母[,.?]匹配文字“,”、“•”或?[0-9a-z]匹配任何数字或小写字母[八0-9]匹配除数字外的任何字符(~表示不匹配其后的内容)你可以象下面一样的表达式A或B进行搜索:"(John|Tom)"这将搜索John或Tom在两个表达式之间应该没有任何其它内容你可以在同一次搜索象下面一样组合A或B和C或D:"(John|Tom) (SmithJones)"这将搜索Smith或Jones以及跟随在后面的John或Tom如果在查找/替换中没有选择使用正则表达式,在替换对象中下列特殊字符同样有效:符号功能AA匹配字符“八”As表示活动文件窗口中选定(加亮)的文字Ac表示剪贴表的内容。
Ab匹配一个分页符八P匹配一个换行符(CR/LF)(段落)(DOS文件)Ar匹配一个换行符(仅CR)(段落)(MAC文件)An匹配一个换行符(仅LF)(段落)(UNIX文件)At匹配一个制表符注意-八这里所涉及的字符“不是控制键+值UE中使用正则表达式的一些技巧1)删除空行:替换%[人t] + + ^p为空串2) 删除行尾空格:替换[人口+$为 空串3) 删除行首空格:替换%[人t]+为 空串4) 每行设置为固定的4个空格开头:替换%[人口 + +人([~化①]人)为"人1"5) 每段设置为固定的4个空格开头:替换%[人口+为""(如 果一行是以空格开始的,则视之为一段的开始行)6) 将一段合并为一行:替换[人t] + + ^pA([~人Lp]人)为人1 (注意:此处假定文本是以DOS方式回车换行-CR/LF)7) 去掉HTML TAG:替换人{<*>人}人{<*人卩*>人}为空串8) 删除HTML中的所有<A>:替换<[] ++a*[ ]++href[ ]++=*> 为 空串9) 删除文本中指定的前 2 列字符: 替换 %?? 为 空串10) 在第4列后插入2列空白字符:替换%人(????人)人(?人) 为"人1人2"11) 查找所有的数字: [0-9]+[.]++[0-9]+12) 查找所有的单词: [a-z]+13) 查找所有的网址:http:〃[a-zO-9人~'_・/人-人?=&] +UltraEdit 正贝U表达式(UltraEdit Syntax)%1 搜索以 1 开头的行1$ 搜索以1 为结尾的行? 匹配单字符* 匹配多字符Te+st 匹配"test", "teest", "teeeest"等■但不匹配"tst". te++st 匹配''test", "teest", "teeeest","tst"等■但不匹配・ 7新行(DOS Files格式)新行(MAC Files格式)^n 新行(UNIX Files 格式)人t tab键[1-9] 匹配 1-9 的数字[linux] 匹配 linux 中任何一个单词[~0-9] 除数字外任何一个词"人{John^}人{Tom^}"搜索 john 和 tom 如如 john sdfasdf tom被选种,当然不包括sdfasdf,其中人{和人}是分割符以下是自己做的例子:1:替换空格或TAB后的所有字符(这个常常在取字段列名时 有用到,因为用desc列出来的信息降了列名外还有列类型,列 空约束和列注释信息):命令:将[谊]+*$替换为空1.1:替换前,图 1.1:1.2:用 CRTL+R 调出替换窗口,然后按下面的输入,替换,图 1.2(注意,此处要选择正则表示式,默认情况下不勾选 ):1.3:替换后,图 1.3:SRC_USER_STATE edw2user2state src^prolTid EDW~PROD~IDQ i 11 11 11 丄卩11 11 11 11 .'卩11 11 11 11 ."卩i「「i i亡34替换范區:。
当前文件(U) 选定文字(L) 所有打开文件①〕5全宇匹酉血〕匹郵犬小写筒団正贝懐达式励:UltraEdit从替换结果来看,说明查找的顺序是从前到后,替换是从第一个 开始查找到的字符位置开始的依此递推,当我们想将特定字符串后的内容替换为特定内容或者 空时,,只需将%*{特定字符串}替换成空为可以了2、替换含有空格或 TAB 键前的所有内容操作:将%*[ ^t ]替换为空2.1替换前,如图 1.12.2替换后,图 2.2:123VASCHAR(1O> NOT NULL;VARCHAR(10);NUMERIC(10);WU:-IERI匸匸⑴;查找件么QT):細[“t]替换为on:全宇匹團陽□匹酉吠小写加』正贝懐达式酊:UltraEdit 替换范囤:q当前文件on选定文宇(L)所有打开文件©)依此递推,当我们想将特定字符串前的内容替换为特定内容或者空时,只需将{特定字符串}+*$替换成空为可以了3、空行或仅含有空格和TAB键的行操作:将%[人口 + +人卩替换为空3.1:替换前,图 3.1:3.2:替换后,图 3.2:■g . i i i I . . . J_.iJ"~~~~i~~~' .Li"~~~~i~~~' 37U~""""j'"""'"""i~'~~'~~' ^f?0'~~'~~'~~■ I~'~~j~~' 0. . . . I . . . 570. . . . I . . . /70. . . . I . . . Ci U.L 5RC_U5ER_5TATE VAKCHAK [10 > NOT NULL; — — — —L EDw2uSEr2state VAKCHAK(10};3 SRC^PROdZiE NUMERIC(10);1 EDW^PROD^IE NUMERIC(10};□ 123%[ "t]++"p▼替换为(£):替换藝围:眇当前变件⑪选走文宇(1)所有打开文件(S)高级⑪査找什虫(Si;忙个项目已替頼。
全宇匹旣⑩匹配大小写11朗正则表达式迢1: UltraEdit依此递推,如果想将仅含有特定字符串的行删除,也可采用%{特定字符串} + + ^P替换为空为可以了4、在行末添加 分号字符 操作:将$替换成; 4.1:替换前,如图 1.1 4.2:替换后:4个项目已替换VARCHAR(10};NUMERIC(10};NUMERIC(101;QI I I I I I I I 丄卩I I I I I I I I -2[°i I I I I I I I I 。












