【5】正则表达式应用——删除空行
启动EditPlus,打开待处理的文本类型文件。
①、选择“查找”菜单的“替换”命令,弹出文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“替换范围”中的“当前文件”,表明对当前文件操作。
②、单击“查找内容”组合框右侧的按钮,出现下拉菜单。
③、下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。
直接在”查找”中输入正则表达式“^[ \t]*\n”,注意\t前有空格符。
(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。
(2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。
(3)按一下空格键,添加空格符。空格符是空行的一个组成成分。
(4)选择“制表符”,添加代表制表符的“\t”。
(5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出现0个或多个。
(6)选择“换行符”,插入“\n”,表示回车符。
④、“替换为”组合框保持空,表示删除查找到的内容。单击“替换”按钮逐个行删除空行,或单击“全部替换”按钮删除全部空行(注意:EditPlus有时存在“全部替换”不能一次性完全删除空行的问题,可能是程序BUG,需要多按几次按钮)。
更多示例:
1.在汉化的时候,是否经常碰到这样的语句需要翻译:
Code:
“Error adding the post!”;
“Error adding the comment!”;
“Error adding the user!”;
如果有很多类似的文件一个一个翻译显然很累而且感觉很无聊。
其实可以这样处理,在Editplus里面用 替换 功能,在替换对话框选中“正则表达式”复选框:
查找原文件:
Code:
“Error adding ([^!|"|;]*)
替换成:
Code:
“在增加\1时发生错误
这样替换之后发生了什么?结果是:
Code:
“在增加the post时发生错误!”;
“在增加the comment时发生错误!”;
“在增加the user时发生错误!”;
ok,接下来你会怎么做?当然再替换一次把the post、the comment、the user替换成你要翻译的词。得到最后的结果:
Code:
“在增加帖子时发生错误!”;
“在增加评论时发生错误!”;
“在增加用户时发生错误!”;
2.要提取的单词在中间,比如:
Code:
can not be deleted because
can not be added because
can not be updating because
可以用这种方式:
在Editplus里面用 替换 功能,在替换对话框选中“正则表达式”复选框:
查找原文件:
Code:
can not be ([^ ]*) because
替换成:
Code:
无法被\1因为
这样替换之后发生了什么?结果是:
Code:
无法被deleted因为
无法被added因为
无法被updating因为
其余步骤如上。
在汉化量很大而且句式比较单调的情况下对效率的提高很明显!
解释一下:([^!|"|;]*) 的意思是 不等于 ! 和 ” 和 ; 中的任何一个,意思就是这3个字符之外的所有字符将被选中(替换区域);
\1 即被选中的替换区域所在的新位置(复制到这个新位置)。
3.删除文本文件里面的空白行
查找原文件:
Code:
^[ \t]*\n
高级替换:
abandon[2’b9nd2n]v.抛弃,放弃
abandonment[2’b9nd2nm2nt]n.放弃
abbreviation[2bri:vi’ei62n]n.缩写
abeyance[2’bei2ns]n.缓办,中止
abide[2’baid]v.遵守
ability[2’biliti]n.能力
able[’eibl]adj.有能力的,能干的
abnormal[9b’n0:m2l]adj.反常的,变态的
aboard[2’b0:d]adv.船(车)上
1.
查找: (^[a-zA-Z0-0\-]+)(\[*.*\]+)(.*)
替换: @@@@@”\1″,”\2″,”\3″,
效果:
@@@@@”abandon”,”[2’b9nd2n]“,”v.抛弃,放弃”,
@@@@@”abandonment”,”[2’b9nd2nm2nt]“,”n.放弃”,
@@@@@”abbreviation”,”[2bri:vi’ei62n]“,”n.缩写”,
@@@@@”abeyance”,”[2’bei2ns]“,”n.缓办,中止”,
@@@@@”abide”,”[2’baid]“,”v.遵守”,
@@@@@”ability”,”[2’biliti]“,”n.能力”,
@@@@@”able”,”[’eibl]“,”adj.有能力的,能干的”,
@@@@@”abnormal”,”[9b’n0:m2l]“,”adj.反常的,变态的”,
@@@@@”aboard”,”[2’b0:d]“,”adv.船(车)上”,
2.
查找: \n
替换:
注: 要次替换内容为空
效果:
@@@@@”abandon”,”[2’b9nd2n]“,”v.抛弃,放弃 ”,@@@@@”abandonment”,”[2’b9nd2nm2nt]“,”n.放弃 ”,@@@@@”abbreviation”,”[2bri:vi’ei62n]“,”n.缩写 ”,@@@@@”abeyance”,”[2’bei2ns]“,”n.缓办,中止”,@@@@@”abide”,”[2’baid]“,”v.遵守 ”,@@@@@”ability”,”[2’biliti]“,”n.能力”,@@@@@”able”,”[’eibl]“,”adj.有能力的,能干的 ”,@@@@@”abnormal”,”[9b’n0:m2l]“,”adj.反常的,变态的 ”,@@@@@”aboard”,”[2’b0:d]“,”adv.船(车)上”,@@@@@”abolish”,”[2’b0li6]“,”v.废除,取消”,@@@@@”abolition”,”[9b2’li62n]“,”n.废除,取消”
3.
查找: @@@@@
替换: \n
效果:
“abandon”,”[2’b9nd2n]“,”v.抛弃,放弃”,
“abandonment”,”[2’b9nd2nm2nt]“,”n.放弃”,
“abbreviation”,”[2bri:vi’ei62n]“,”n.缩写”,
“abeyance”,”[2’bei2ns]“,”n.缓办,中止”,
“abide”,”[2’baid]“,”v.遵守”,
“ability”,”[2’biliti]“,”n.能力”,
“able”,”[’eibl]“,”adj.有能力的,能干的”,
“abnormal”,”[9b’n0:m2l]“,”adj.反常的,变态的”,
“aboard”,”[2’b0:d]“,”adv.船(车)上”,
“abolish”,”[2’b0li6]“,”v.废除,取消”,
4.
双引号包含的字符串 “.*?”
[ ]包含的字符串 \[[^\[]*?\]
变量名 [a-zA-Z_][a-zA-Z_0-9]*
IP 地址 ([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})
各行Tab以后的文字列 \t.*$
行头插入 // Find: ^ Replace with: //
删除行头 // Find: ^//
删除行后的空白文字(包含空格和制表位 Space+Tab) Find: \s+?$
将(abc)替换为[abc] Find: \((.*?)\) Replace: \[\1\]
将<H3 …>替换为<H4 …> Find: <H3(.*?)> Replace: <H4\1>
将9/13/2003替换为2003年9月13日 Find: ([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4}) Replace: \3年\1月\2日
将字母a-z替换为大写字母 Find: [a-z] Replace: \U\0
首字母大写 Find: ([a-zA-Z])([a-zA-Z]*) Replace: \U\1\L\2
平仮名ひらがなHiragana [\x{3041}-\x{309e}]
全角片仮名 全角カタカナFull-width Katakana [\x{309b}-\x{309c}\x{30a1}-\x{30fe}]
半角仮名 半角カナHalf-width Kana [\x{ff61}-\x{ff9f}]
中日韩 汉字CJK ideographs [\x{3400}-\x{9fff}\x{f900}-\x{fa2d}]
中日韩 汉字符号CJK ideograph marks [\x{3000}-\x{3037}]
韩国字符Hangul [\x{1100}-\x{11f9}\x{3131}-\x{318e}\x{ac00}-\x{d7a3}]
|