找回密码
 立即注册
搜索
查看: 7269|回复: 8
打印 上一主题 下一主题
收起左侧

【转帖】EmEditor使用正则表达式处理文本简单教程

[复制链接]
跳转到指定楼层
楼主
发表于 2010-5-26 12:47 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
PS1:排版脚本不是万能的,因为TXT文本的不同,很多时候还需要手动使用正则替换。
PS2:排版脚本不能对多个TXT文件进行批量替换,推荐使用老马的TextForever软件中正则表达式批量替换功能(估计用的人的不多)
使用时注意下:正则表达式在JS和VBS脚本中的写法是不同的。

在其他论坛闲逛,觉得这篇文章不错。转帖过来,希望对正则新手有所帮助。其实做电子书,正则不用学好深,学到初级就足够了。
作者:shasini123

原帖地址:http://www.eshutan.com/thread-fid-119.html

什么是正则表达式

正则表达式(英文:Regular Expression)在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。


例一:段落间增加空行

一个最简单的例子,示例文本如图,我们的目标是在各个段落间加入一个空行


正则表达式中,使用\n表示一个换行符,一个换行符代表一段,要在段落间加入一个空行,只要把\n替换为\n\n即可。按Ctrl+H打开替换对话框,如图填入内容,注意在替换中一定要勾选“使用正则表达式”。替换结果如下

  


例二:查找章节

在处理TXT时,经常需要查找各个章节的开头位置。示例文本如下


一般来说,章节的开头一般是“第N章”或者“第N节”,N为中文或阿拉伯数字,如“第十四章“。查找时,按下Ctrl+F,正则表达式为
第[0-9一二三四五六七八九十零〇百]{1,5}[章]
效果如下


上面的表达式中,[]里的内容为所有可能字符,这里把所有中文和阿拉伯数字列为可能字符,{1,5}表示这些字符出现的次数为1~5次。比如“第一百二十一章”里面的“一百二十一”就是出现了5次字符。你完全可以根据需要改变次数。例如{1,3}就是出现1~3次。


例三:章节前加卷名

示例图片还是上一个例子的图片,但是目标是在所有章节前加上卷名,比如“第一章”变成“卷一 第一章”,实现如下效果


替换时查找的内容与上一个例子一样,但是注意在表达式外面要加一个括号。括号的作用是把里面的所有表达式合并为一个组。原因会在下面说明。
(第[0-9一二三四五六七八九十零〇百]{1,5}[章])
接着对这个组进行替换,替换的内容为
卷一 \1
上面的表达式中,\1指代第一个匹配到的组,即上面我们写的(第[0-9一二三四五六七八九十零〇百]{1,5}[章]),这样就成功替换了。


时间关系先写到这里,过完年后或许还会有后续教程。这里介绍的都是一些初级但实用的正则表达式用法,事实上正则表达式极端强大,却也难以掌握。使用正则表达式处理文本的一个要点就是平时多积累式子,然后自己修改式子化为己用。

最后说下,EmEditor有宏功能,可以录制下你的操作。因此一些常用的正则表达式,你可以录制下来后做一个按钮放在工具栏上
插件设计:zasq.net

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| ( Q群816270601 )

GMT+8, 2024-6-1 05:07 , Processed in 1.047931 second(s), 45 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表