一、基础篇

1.

[cpp] view plaincopy

^  匹配行首,比如说查找^s, 就是查位于行首的 s

2.

[cpp] view plaincopy

.*?$  这个用处比较大,但一般不单独使用,比如与上面的结合

比如 ^s.*?$,就是查以 s 为行首的行,其中 .* 是匹配任意字符,$ 代表行尾,?$ 是告诉程序你要定位到行尾。

3.

[cpp] view plaincopy

\n  这个很简单,就是换行符,用得也非常多,

比如 “\n\n”,替换成“\n”,就是把2个换行符替换成1个。

练习:

[cpp] view plaincopy

bas,bat =to,go(走)

chlor =green or chlorine(绿,氯)

chol =gallbladder(胆)

chondrio =cartilage(软骨)

erg =energe(能量)

err =to wander(流浪;漂泊),to err(偏离正道,犯错,犯罪)

ess,est =to be(存在)

est,ess =to be(存在)

a. 查找行首的a、e、c等字符;

^a|^e|^c

b. 查找以c开头的行,不包括换行符;

^c.*?$

c. 查找以e开头的行,包括换行符;

^e.*\n

d. 查找两个相连的换行符,将它替换成一个;

\n\n

\n

4.

[cpp] view plaincopy

\s 是表示一个半角空格(半角和全角看不懂的请先google一下),

\t 指的是一个TAB空格,不清楚的话在Emeditor里敲一次TAB键,出来的就是它了。

查 \s 的时候是包括TAB空格的,但查 \t 的时候却不能包括半角空格,其实这两个都非常有用。

\s 与 \n 连用,那就是非常实用的查行尾空格的表示法了

5.

[cpp] view plaincopy

{1,n} 大括号内的数字是表示数量的范围,它的前面必须有个东西,比如说“\s{1,3}”就表示1到3个空格通吃,

如果用“\s{3}”呢,就意味着3个空格

6.

[cpp] view plaincopy

[a-z]  表示26个字母中的任一个,如果在替换窗口内勾选“区分大小写”则表示26个小写字母,否则大小写通吃。

练习:

[cpp] view plaincopy

acousto =sound(声音)

acro = high(高)

act =do(行动)

acuti = acuate (尖的,尖锐的)

acousto = sound(声音)

aer,aero,ar,aro=air(空气)

after =(在……之后)

1)删除下列文本中的行首空格(请结合上一练习);

^\s*

2)删除行尾空格;

\s*$

3)将文本中的TAB空格替换成半角空格;

4)查找任意相连的四个字母;

[a-z]{4}

5)查找位于行首的长度为3-5个字母的单词(注意必须是完整单词,这题稍微要动动脑筋,找一下规律)。

^[a-z]{3,5}

小结:使用正则表达式来处理文档,最大的关键在于仔细去分析文档中的规律,只要有规律可以利用,我们就能进行批量处理,工作效率就是这么提高的。一定要多想,更重要的是多试,有时候想半小时还不如实际动手操作5分钟。

7.

[cpp] view plaincopy

[] 就是上面的[a-z]往下讲,用中括号括起来表示括号某一个字符,你也可以这样表示:[abc],意思是a、b、c三个字母中任一个都行。

但[] 与^结合有一个非常实用的用法,比如^[^c],这表示位于行首的除 c 之外的字母。

8.

[cpp] view plaincopy

() 单独使用的话没有什么意义,用了它就表示引用括号里的内容,然后用\1\2\3…… 来一一调用

\1 是第一个小括号里的内容,\2 是第二个小括号里的内容,依此类推。

9.

[cpp] view plaincopy

[[:unicode:]]  用它来将中文字符和英文字符区分开来。

练习:

[cpp] view plaincopy

document.selection.Replace("瑞秋","Rachel",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);

document.selection.Replace("钱德勒","Chandler",eeFindNext|eeReplaceAll|eeFindReplaceRegExp);

document.selection.Replace("钱德","Chandler",eeFindNext | eeReplaceAll|eeFindReplaceRegExp);

document.selection.Replace("乔伊","Joey",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);

document.selection.Replace("菲比","Phoebe",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);

然后分别执行下述操作:

1.将  ("瑞秋","Rachel", 改为 ("Rachel","瑞秋",

其它各行参照此格式进行修改;

查找:(".*?"),(".*?")

替换:\2,\1

2.删除所有中文字符;

[[:unicode:]]

10.特殊字符:

[cpp] view plaincopy

^

$

( )

[ ]

{ }

.

?

+

*

|

这些字符都是在正则表达式中被“征用”了,称之为特殊字符,引用的时候,必须前面加 "\" 进行区分,比如你要用到 "$" 字符的时候,必须使用 "\$",这样程序才不会以为你是在匹配行尾。

练习:

[cpp] view plaincopy

[00:53.90][Monica]:There's nothing to tell!

[00:55.60][Monica]:He's just some guy I work with!

[00:57.90][Joey]:C'mon, you're going out with the guy!

[00:59.10][Joey]:There's gotta be something wrong with him!

[01:02.70][Chandler]:All right Joey, be nice.

[01:04.80][Chandler]:So does he have a hump? A hump and a hairpiece?

然后分别执行下述操作:

1.删除带"[]"的内容;

\[.*\]

2.做完上一步后,删除位于行首的 ":"。

二、实战篇

练习1:

[cpp] view plaincopy

首先,把以下五个小零件翻译出来,这一定很简单,它们是:

第一个零件:这项计划提供机会,翻成英语是This plan providedopportunities。

第二个零件:为研究者,翻成英语是forresearchers。

第三个零件:从印度和外国来的,翻成英语是from India andabroad。

第四个零件:研究老虎,翻成英语是to studytigers。

第五个零件:在保护区里,翻成英语是in thereserves。

然后将这段文本替换成如下格式:

[cpp] view plaincopy

首先,把以下五个小零件翻译出来,这一定很简单,它们是:

第一个零件:这项计划提供机会,翻成英语是This plan providedopportunities。

第二个零件:为研究者,翻成英语是forresearchers。

第三个零件:从印度和外国来的,翻成英语是from India andabroad。

第四个零件:研究老虎,翻成英语是to studytigers。

第五个零件:在保护区里,翻成英语是in thereserves。

提示:删除多余的换行符。

\n\n

练习2:

[cpp] view plaincopy

And bigger boobs!   大笨蛋!

"Yeah, see.. you took mine. Chandler, what about you?"  你知道我的了。钱德,你呢?

"Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever." 如果有一天我变得全能,我要让自己变得永远全能。

"See, there's always one guy."  看吧,这儿总是有一个家伙。

"If I had a wish, I'd wish for three more wishes."  如果我有愿望的话,我希望我还能多有三个愿望。

然后将这段文本替换成如下格式:

[cpp] view plaincopy

Q: And bigger boobs!

A: 大笨蛋!

Q: "Yeah, see.. you took mine. Chandler, what about you?"

A: 你知道我的了。钱德,你呢?

Q: "Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever."

A: 如果有一天我变得全能,我要让自己变得永远全能。

Q: "See, there's always one guy."

A: 看吧,这儿总是有一个家伙。

Q: "If I had a wish, I'd wish for three more wishes."

A: 如果我有愿望的话,我希望我还能多有三个愿望。

要求:使用一个查找和替换语句完成。

友情提示:这段文本是将EXCEL文件另存为"制表符分隔”的文本文件得到的。

参考答案:

查找:(^.*?)\t(.*?$)

替换:Q: \1\nA: \2

练习3:

[cpp] view plaincopy

4 And bigger boobs! 大笨蛋!

5 "Yeah, see.. you took mine. Chandler, what about you?"    你知道我的了。钱德,你呢?

6 "Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever."   如果有一天我变得全能,我要让自己变得永远全能。

7 "See, there's always one guy."""  看吧,这儿总是有一个家伙。

8 "If I had a wish, I'd wish for three more wishes."""  如果我有愿望的话,我希望我还能多有三个愿望。

然后将这段文本替换成如下格式:

[cpp] view plaincopy

Q: And bigger boobs!

A: 大笨蛋!

Q: Yeah, see.. you took mine. Chandler, what about you?

A: 你知道我的了。钱德,你呢?

Q: Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever.

A: 如果有一天我变得全能,我要让自己变得永远全能。

Q: See, there's always one guy.

A: 看吧,这儿总是有一个家伙。

Q: If I had a wish, I'd wish for three more wishes.

A: 如果我有愿望的话,我希望我还能多有三个愿望。

要求:使用一个查找和替换语句完成。

友情提示:""是固定的,变的只是原先位于行首的数字。

参考答案:

查找:(^\d.*?)\t(.*?\t)(.*?$)

替换:Q: \2\nA: \3

练习4:

[cpp] view plaincopy

valedictory "a.告别的

n.告别演讲"

close-hauled    a.张满帆的,迎风航行的

mean    "a.吝啬的,卑鄙的,简陋的,不舒服的,平庸的,低劣的,中间的,中等的,平均的,普通的

n.中间,中部,中庸"

bumper-to-bumper    a.前后紧接且行进缓慢的车队的

between a rock and a hard place ph.左右为难,进退两难

have one's head screwed on the right way    ph.头脑清醒

mimic   "v.(通过学养)戏弄,模仿,与。。。极相似

n.善于模仿的人,能模仿人的动物,滑稽剧演员

a.模仿的,好模仿的,模拟的,假装的"

1.将它转换成下面这样的格式:

[cpp] view plaincopy

valedictory "a.告别的n.告别演讲"

close-hauled a.张满帆的,迎风航行的

mean "a.吝啬的,卑鄙的,简陋的,不舒服的,平庸的,低劣的,中间的,中等的,平均的,普通的n.中间,中部,中庸"

bumper-to-bumper a.前后紧接且行进缓慢的车队的

between a rock and a hard place ph.左右为难,进退两难

have one's head screwed on the right way ph.头脑清醒

mimic "v.(通过学养)戏弄,模仿,与。。。极相似n.善于模仿的人,能模仿人的动物,滑稽剧演员a.模仿的,好模仿的,模拟的,假装的"

2.处理成Q&A格式的词库:

[cpp] view plaincopy

Q: valedictory

A: "a.告别的n.告别演讲"

Q: close-hauled

A: a.张满帆的,迎风航行的

Q: mean

A: "a.吝啬的,卑鄙的,简陋的,不舒服的,平庸的,低劣的,中间的,中等的,平均的,普通的n.中间,中部,中庸"

Q: bumper-to-bumper

A: a.前后紧接且行进缓慢的车队的

Q: between a rock and a hard place

A: ph.左右为难,进退两难

Q: have one's head screwed on the right way

A: ph.头脑清醒

Q: mimic

A: "v.(通过学养)戏弄,模仿,与。。。极相似n.善于模仿的人,能模仿人的动物,滑稽剧演员a.模仿的,好模仿的,模拟的,假装的"

提示:题1需要多动动脑筋,要注意观察材料的特点,利用好TAB符号,需要搭一个跳板。题2则与练习1是一样的解决方法。

参考答案:

1.分三步走

A、查找:^(.*?\t.*?$)

替换:#\1

因为不能直接找出不带\t的行,那就先给带\t的行做个标记;

B、查找:\n([^#])

替换:\1

注意\n([^#])与(^[^#])的细微区别

C、查找:^#

替换:

删除掉行首多余的#号

2.参看练习2的解答,大部分用EXCEL另存的带制表符分隔的文本都可以照这样的方式处理。

emeditor正则表达式_EmEditor 正则表达式使用实例教程相关推荐

  1. JAVA正则表达式实例教程(转帖收藏)

    So many open source projects. Why not Open your Documents? 1 JAVA正则表达式实例教程 12/11/2008 1.正则表达式的知识要点 1 ...

  2. emeditor正则表达式_Emeditor中使用正则表达式的一些技巧

    正则表达式的功能非常强大,使用文本编辑器的过程中发现使用正则表达式进行替换非常方便,能完成许多普通的字符替换完成不了的效果,下面就是例子: EmEditor文本编辑器中使用正则表达式进行替换的示例: ...

  3. python正则匹配ip地址_Python正则表达式匹配ip地址实例

    Python正则表达式匹配ip地址实例 更新时间:2014年10月09日 11:22:51 投稿:shichen2014 这篇文章主要介绍了Python正则表达式匹配ip地址实例,通过简单的实例讲述了 ...

  4. php 正则表达式 菜鸟,正则表达式菜鸟教程.pdf

    正则表达式菜鸟教程 正则表达式菜鸟教程 1开山篇教程 正则表达式 - 教程 正则表达式(Regular Expression)是一种文本模式,包括普通字符 (例如,a 到 z 之间的字母) 和特殊字符 ...

  5. html5正则表达式语法,正则表达式 – 语法 | 菜鸟教程

    正则表达式 - 语法 正则表达式(regular )描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 例如: ...

  6. python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re)

    本篇主页内容:match的基本使用,search的基本使用,findall,finditer的基本使用,匹配中文,贪婪与非贪婪模式 Python爬虫教程-19-数据提取-正则表达式(re) 正则表达式 ...

  7. 正则表达式的总结及实例

    正则表达式的使用总结 Linux文本处理三剑客: grep: 文本过滤工具: sed:文本编辑器(行):stream editor awk:文本报告生成器:Linux上awk的实现为gawk grep ...

  8. Silverlight实例教程 - Validation数据验证开篇

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  9. 《HTML5与CSS3实例教程》

    <HTML5与CSS3实例教程> 基本信息 作者: (美)Brian P. Hogan 译者: 卢俊祥 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:97871153634 ...

最新文章

  1. IXmaps揭示互联网流量是否被NSA监视
  2. JavaScript权威设计--CSS(简要学习笔记十六)
  3. 线程的创建开销大吗?线程创建开销包括哪些?线程池
  4. WebStorm开发微信小程序:解决在wxss中格式化rpx前会多出一个空格的问题
  5. PYPL 二月榜单发布:最受欢迎的编程语言、IDE 和数据库都是哪些
  6. 提高HTML5 canvas性能的几种方法
  7. centos7-每天定时备份 mysql数据库
  8. 【To Do! 重点 正则表达式】LeetCode 65. Valid Number
  9. 如何在云服务器使用docker快速部署jupyter web服务器(Nginx+docker+jupyter+tensorflow)
  10. a卡显存定位软件tserver_不止显卡!这些硬件因素也a影响着你的深度学习模型性能...
  11. SNMP配置:view配置中mask参数的详解
  12. win7c盘空间越来越小_C盘空间越来越小怎么办,5个步骤无损扩容1招就搞定
  13. matlab中ode的用法,关于matlab 的ode45用法
  14. 中职计算机应用综合试题精选,2015中职计算机应用专业全真模拟试卷(一).doc...
  15. IT行业男性出轨率最高!
  16. mysql创建前缀索引
  17. 如何用matlab画圆环,利用内外径画圆环
  18. hooks引用useRef,报错object is possibly undefined
  19. 排队论 (queuing theory)推论与举例
  20. BootStra相关脚本引用说明

热门文章

  1. oppo 电子保修卡显示服务器内部错误,综合科技教程:oppo电子保修卡在哪里
  2. Python request库爬取网页html源码
  3. STM32F103VCT6定时器
  4. android博学谷我的代码,Android项目实战系列—基于博学谷(四)我的模块(下)...
  5. h5游戏使用微信h5支付,刷新页面问题解决
  6. 房屋买受人无购房资格,合同效力
  7. 植物创建与种植插件大全
  8. 【Matlab学习手记】二维码
  9. 道路编号和出口编号的数字化、人文化、国际化
  10. Codeforces Round #827 (Div. 4) G. Orray