emeditor正则表达式_掌握EmEditor正则表达式语法,大大提升工作效率

缙哥哥非常懒,当遇到重复的事情时,就喜欢通过批量处理来解决,而文本用的是 EmEditor 程序,EmEditor 正则表达式语言基于 Perl 正则表达式语法,所以通过掌握EmEditor正则表达式语法,大大提升工作效率。

文字

所有字符都是文字除了: “.”, “*”, “?”, “+”, “(“, “)”, “{“, “}”, “[“, “]”, “^”, “$” 和 “\”。这些字符代表文字当之前有一个 “\” 时。一个文字是一个与它自己相匹配的字符。例如,搜索 “\?” 会匹配每一个在文档中的 “?” ,或搜索 “Hello” 会匹配每一个在文档中的 “Hello” 。

下列表格包含元字符(非文字)的完整列表以及这些元字符在正则表达式中的行为。

\

把下一个字符标记为一个特殊字符,一个文字,或一个向后引用。例如,’n’ 与字符 “n” 相匹配。而 ‘\n’ 代表一个换行符号。序列 ‘\\’ 代表 “\”,”\(” 则与 “(” 相匹配。

^

匹配输入字符串的开始位置。例如,”^e” 表示任何由 “e” 开头的字符串。

$

匹配输入字符串的结尾位置。例如,”e$” 表示任何由 “e” 结尾的字符串。

*

匹配之前的字符或子表达式零次或多次。例如,zo* 会匹配 “z” 以及 “zoo”。* 等同于 {0,}。

+

匹配之前的字符或子表达式一次或多次。例如,’zo+’ 匹配 “zo” 以及 “zoo”,但不匹配 “z”。 + 等同于 {1,}。

?

匹配之前的字符或子表达式零次或一次。例如,”do(es)?” 匹配 “do” 在  “do” 或 “does” 中。? 等同于 {0,1}。

{n}

n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不匹配 “Bob” 中的 “o”,但与 “food” 中的两个 o 匹配。

{n,}

n 是一个非负整数。匹配至少 n 次。例如,’o{2,}’ 不匹配 “Bob” 中的 “o”,单匹配 “foooood” 中的所有 o。and matches all the o’s in “foooood”. “o{1,}” 等同于  ‘o+’。 ‘o{0,}’ 等同与 ‘o*’。

{n,m}

m 和 n 都要是非负整数,n <= m。匹配至少 n 次,最多 m 次。例如,”o{1,3}” 与 “fooooood”中的前三个 o 向匹配。 ‘o{0,1}’ 等同于 ‘o?’。要注意的是你不能在逗号与数字之间加一个空格。

?

当这个字符紧跟着任何其他数量词 (*, +, ?, {n}, {n,}, {n,m}) 时,匹配的模式是非贪婪。一个非贪婪模式尽可能少地与搜索字符串匹配,而默认的贪婪模式则尽可能多地与搜索字符串匹配。例如,字符串 “oooo”,’o+?’ 匹配单一的一个 “o”,而w ‘o+’ 匹配所有 ‘o’。

.

与任何单一字符串匹配。例如,”.e” 匹配任何在 “e” 之前的文字,如 “he”,”we”,或 “me”。 在 EmEditor Professional 中,它匹配搜索正则表达式的附近行文本框中指定范围内的换行当正则表达式 “.” 匹配换行符复选框被勾选。

(pattern)

括号有两个作用: 把一个格式组合到一个子表达式中,以及捕捉生成该匹配的格式。例如,表达式 “(ab)*” 匹配所有字符串 “ababab”。每一个子表达式的匹配被捕捉为一个从左到右编号的向后引用(如下)。要匹配括号字符,用 ‘\(‘ 或 ‘\)’。

\1 – \9

指定一个向后引用 – 一个向后引用是上一个被匹配的子表达式的引用。引用的内容是与子表达式相匹配的内容,而不是表达式本身。一个向后引用由转义符 “\” 加一个 “1” 到 “9” 的数字组成。”\1″ 指的是第一个子表达式,”\2″ 是第 2 个,以此类推。例如,”(a)\1″ 会捕捉 “a” 为第一个向后引用,并匹配任何 “aa” 文本。你还可以使用向后引用功能当你在搜索菜单下选择替换功能时。用正则表达式来定位一个文本格式,与之相匹配的文本能被一个指定的向后引用替换。例如,”(h)(e)” 的表达式会在文本中查找 “he”,把 “\1” 放在替换为文本框中会用 “h” 取代 “he”, 而如果是 “\2\1” 的话,则会用 “eh” 取代 “he” 。

(?:pattern)

一个与格式相匹配,但不捕获该匹配的子表达式,这是一个不能用向后引用来存储的非捕获匹配。这个表达式通常和 “or” 字符 (|) 组合使用。例如,’industr(?:y|ies) 是一个比 ‘industry|industries’ 更实用的表达式。

(?=pattern)

子表达式执行匹配 lookahead 搜索,查找任何后面跟着符合的模式的字符串。例如,”x(?=abc)” 与 “x”相匹配仅当字符串后面跟着 “abc” 表达式时。 这是一个不能用向后引用来存储的非捕获匹配。模式不包含换行。

(?!pattern)

子表达式执行非匹配 lookahead 搜索,查找任何后面没有跟着符合的模式的字符串。例如,”x(?!abc)” 与 “x” 相匹配只有当该字符串后面不跟着 “abc” 表达式时。这是一个不能用向后引用来存储的非捕获匹配。模式不包含换行。

(?<=pattern)

子表达式执行匹配 lookbehind 搜索,查找任何前面是符合的模式的字符串。例如,”(?<=abc)x” 匹配一个 “x” 只有当它前面有表达式 “abc”时。这是一个不能用向后引用来存储的非捕获匹配。模式不包含换行。模式必须是固定长度。

(?

子表达式执行非匹配 lookbehind 搜索,查找任何前面不是符合模式的字符串。例如,”(?

x|y

与 x 或 y 向匹配。例如,’z|food’ 与 “z” 或 “food” 匹配。'(z|f)ood’ 与 “zood” 或 “food” 匹配。

[xyz]

字符集。匹配任何在括号内的字符。例如,'[abc]’ 与 “plain” 中的 ‘a’ 相匹配。

[^xyz]

负字符集。匹配任何不在括号内的字符。例如,[^abc]’ 与 “plain” 中的 ‘p’ 相匹配。

[a-z]

字符范围。与任何指定范围的字符相匹配。例如,'[a-z]’ 与任何 ‘a’ 到 ‘z’ 的小写字母相匹配。

[^a-z]

负字符范围。与任何不在指定范围内的字符相匹配。例如,'[a-z]’ 与任何不在 ‘a’ 到 ‘z’ 范围内的字符相匹配。

字符类

下面的字符类被用在字符集中,例如 “[:classname:]”。例如,”[[:space:]]” 是所有空白字符的集合。

alnum

任何语言字符及数字: 字母,音节或表意字符。

alpha

任何语言字符: 字母,音节或表意字符。

blank

任何空白字符,空格或 tab。

cntrl

任何控制字符。

digit

任何 0-9 的数字。

graph

任何图形字符。

lower

任何 a-z 的小写字符,以及其他小写字符。

print

任何可打印的字符。

punct

任何标点字符。

space

任何空白字符。

upper

任何 A-Z 的大写字母,以及其他大写字符。

xdigit

任何十六进制数字字符,0-9,a-f 还有 A-F。

word

任何单词字符 – 所有字母数字字符以及下划线。

unicode

任何大于 255 代码的字符。

单一字符转义序列

下列转义序列是单一字符的别名:

0x07

\a

响铃字符。

0x0C

\f

换页 (FF)。

0x0A

\n

换行字符。

0x0D

\r

回车符。

0x09

\t

Tab 字符。

0x0B

\v

垂直 tab。

0x1B

\e

ASCII 转义符。

0dd

\0dd

八进制字符代码,dd 是一个或多个八进制数字。

0xXX

\xXX

一个十六进制字符代码,XX 是一个或多个十六进制数字 (一个 Unicode 字符)。

0xXXXX

\x{XXXX}

一个十六进制字符代码,XXXX 是一个或多个十六进制数字 (一个 Unicode 字符)。

Z-‘@’

\cZ Z-‘@’

一个 ASCII 转义序列控制-Z,其中 Z 是任一 ASCII 字符大于或等于 ‘@’ 的字符代码。

单词边界

下列转义序列与单词的边界相匹配:

\<

匹配一个单词的开头。(仅限 Boost.Regex)

\>

匹配一个单词的结尾。(仅限 Boost.Regex)

\b

匹配单词的边界(一个单词的开头或结尾)。

\B

仅当不在单词边界处时匹配。

字符类的转义序列

下列转义序列能被用来表示整个字符类:

\w

任何单词字符 – 所有字母数字字符加下划线。

\W

\w 的补集 – 查找任何非单词的字符。

\s

任何空白字符。

\S

\s 的补集。

\d

任何 0-9 的数字。

\D

\d 的补集。

\l

任何 a-z 的小写字符。

\L

\l 的补集。

\u

任何 A-Z 的大写字符。

\U

\u 补集。

\C

任何单一字符,等同与 ‘.’。

\Q

开始引述运算符,任何跟在该符号后面的内容会被作为一个文本字符直到找到 \E 结束引述运算符。

\E

结束引述运算符,终止一个由 \Q 开始的序列。

指定换行符

下列表格显示如何指定换行符。

“查找”对话框,“替换”对话框 – 查找,替换为

勾选“使用正则表达式”

\n 或 \r\n(相同含义)

不勾选“使用正则表达式”(使用转义序列)

\n 或 \r\n(相同含义)

“在文件中查找”对话框,“在文件中替换”对话框 – 查找

勾选“使用正则表达式”

\r\n,\r,或 \n(取决于实际的换行方式)

不勾选“使用正则表达式”(使用转义序列)

\n 或 \r\n(相同含义)

“在文件中替换”对话框 – 替换为

勾选“保持修改的文件打开”

不勾选“保持修改的文件打开”

勾选“使用正则表达式”

\r\n,\r,或 \n(取决于实际的换行方式)

\r\n,\r,或 \n(取决于实际的换行方式)

不勾选“使用正则表达式”(使用转义序列)

\n 或 \r\n(相同含义)

\r\n,\r,或 \n(取决于实际的换行方式)

Tips

如遇 “\n 或 \r\n(相同含义)”,你无法通过分辨 CR+LF,仅 CR,以及 仅 LF 来搜索换行。

如遇 “\r\n,\r,或 \n(取决于实际的换行方式)”,你需要指定 “\r\n” 如果实际的换行是 CR+LF,”\r” 如果是仅 CR,或 “\n” 如果仅 LF。通常,CR+LF (\r\n) 被用在 Windows 操作系统中,CR (\r) 被用在 Macintosh 上,还有 LF (\n) 被用于 Unix。

注意事项

在在文件中查找和在文件中替换中,回车符 (\r) 以及换行符 (\n) 必须仔细指明。更多信息,请参考指定换行。

为了一些转义序列能在 EmEditor 中运作,例如 “\l”, “\u” 以及它们的补集,必须选择区分大小写的选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Building JavaScript Games for Phones Tablets and Desktop(3)-创造一个游戏世界

2019独角兽企业重金招聘Python工程师标准>>> 创造一个游戏世界 这章教会你如何通过内存中储存的信息创造一个游戏世界。介绍了基本类型和变量并且这些变量是如何储存和改变信息的。接下来&#xff0c;你会看到如何用对象储存更复杂的信息&#xff0c;里面包含成员变…

IE6.0、IE7.0 、FireFox 在样式中的不同写法.doc

IE6.0、IE7.0 、FireFox 在样式中的不同写法 2009年3月26日 15:44:27 发布:hugo 或许你一直在抱怨为什么要专门为IE和FF写不同的CSS&#xff0c;为什么IE这样让人头疼&#xff0c;然后一边写css&#xff0c;一边咒骂那个可恶的M$ IE。其实对于css的标准支持方面&#xff0c;IE并…

我女朋友让我删前任,我明明删了她还是要分手...

1 人家都已经删了你还有什么不满意&#xff1f;&#xff1f;&#xff1f;▼2 高跟鞋翻车现场▼3 渣男总能渣出新花样▼4 现在的小朋友懂得也太多了吧&#xff01;▼5 耍帅不可怕&#xff0c;谁失败谁尴尬▼6 朋友&#xff0c;你清醒一点&#xff01;那个小手是鼠标&#…

计算机专业的双证在职研究生,计算机类在职研究生最终能获得双证吗难度是不是很大呢...

在职读研其实优势真的很多&#xff0c;不然也不会每年都有那么多在职者不辞工作的辛苦还有坚持报考&#xff0c;毕竟凭借这份经历可以学习到高端的知识&#xff0c;可以帮助学员提高相应的专业能力&#xff0c;而最终证书的获取也能相应地提升职员在职场的地位。那么&#xff0…

你知道哪些开源基金会?

从 RMS 创立 FSF 发起自由软件运动&#xff0c;再到 OSI 成立并明确开源软件定义&#xff0c;这种崇尚开放协作的软件开发模式迅速席卷全球。除 FSF 与 OSI 外&#xff0c;还陆续诞生了许多致力于推广和发展开源的基金会。开源基金会对于开源软件和开源社区的组织、发展、协同创…

软件项目送上门来了,还要学会说不,接了项目拿了定金噩梦才刚刚开始

今年前前后后也遇到了不少软件项目&#xff0c;想来想去还是拒绝了其中的大部分项目&#xff0c;当然也有一部分是客户拒绝我的&#xff0c;把这些经验教训分享给大家&#xff0c;一起探讨探讨&#xff0c;接了项目很容易深陷泥潭&#xff0c;累得死去活来不值得。拒绝软件项目…

bpmn如何查看代码 idea_提高程序员效率的IDEA插件推荐(五大神器)

1. SequenceDiagramSequenceDiagram 可以根据代码调用链路自动生成时序图&#xff0c;超级赞&#xff0c;超级推荐&#xff01;这对研究源码&#xff0c;梳理工作中的业务代码有极大的帮助&#xff0c;堪称神器。安装完成后&#xff0c;在某个类的某个函数中&#xff0c;右键 -…

(笔记)堆和栈的区别-两种不同的数据结构

堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构&#xff0c;只能在一端(称为栈顶(top))对数据项进行插入和删除。 要点&#xff1a;堆&#xff1a;顺序随意. 栈&#xff1a;后进先出(Last-In/First-Out) 堆和栈的区别 一、预备知识—程序的内存分配一个由C/C编…

.net post提交后接收返回数据_Ajax提交表单的方式

和提交普通表单一样发送数据浏览器端代码$使用开发者工具查看请求体https://cdn.jsdelivr.net/gh/zhangfu1111/Blogimagemanager/images/springboot20200712150040.pngcontroller代码ResponseBody整个请求体是一个JSON数据浏览器端代码$使用开发者工具查看请求体![](https://cd…

javascript高程3 学习笔记(三)

执行环境 执行环境是什么&#xff1f; javascript的解释器每次开始执行一个函数时&#xff0c;都会为每个函数创建一个执行环境&#xff08;execution context&#xff09;。执行环境定义了变量或者函数有权访问的其他数据&#xff0c;决定了他们各自的行为。与执行环境相关的变…

一张纸还能上天能救命?理工男宁愿放弃NASA百万年薪,也要回家折纸?!

全世界有3.14 % 的人已经关注了爆炸吧知识一张纸能做什么&#xff1f;小时候&#xff0c;它可能默默记录着你天马行空的想象力&#xff1a;而到了艺术家手中&#xff0c;它们就会变幻成各种各样精妙绝伦的艺术品&#xff1a;可当一双文艺的手&#xff0c;遇上一颗聪明无比的“理…

【干货】单日10亿GMV的.NET5电商平台,是如何设计的?

自京东和唯品会转了Java&#xff0c;.NET就一直缺乏高并发电商案例&#xff0c;.NET5能做高并发电商吗&#xff1f;必须的&#xff0c;别停留在.NET Framework的旧印象了&#xff01;这里为大家分享一家上市公司的项目案例&#xff0c;纯.NET5电商平台&#xff0c;轻松承接双11…

如何发送html email,如何发送HTML电子邮件?

我已经使用JMS在Web应用程序中成功发送了电子邮件&#xff0c;但是结果仅以纯文本显示。我希望内容能够显示html。我该怎么做&#xff1f;这大致就是我所拥有的&#xff1a;Message msg new MimeMessage(mailSession);try{msg.setSubject("Test Notification");msg.…

通过 Lotus Domino Java 代理消费 Web 服务

Web 服务是一种允许两台或更多的计算机在网络中交互的系统设计。这种服务的主要优点是&#xff0c;它是在多台不同操作系统的计算机和应用服务器之间发送对象的标准解决方法。例如&#xff0c;我们的公司使用 Web 服务从一台运行 Microsoft .NET Framework 的计算机向基于 IBM …

goahead如何使用cgi服务_QQ如何设置使用代理服务器?

很多人可能会问了&#xff0c;QQ上可以设置代理服务器吗?答案是可以的。今天就为大家详细介绍一下&#xff0c;如何在QQ上设置代理服务器的。1、双击QQ图标&#xff0c;打开QQ登录界面&#xff0c;我们就可以看到界面右上角有一个“设置”按钮。QQ如何设置使用代理服务器12、点…

自动布局AutoLayout

http://www.th7.cn/Program/IOS/201410/304252.shtml转载于:https://www.cnblogs.com/runer/p/4430675.html

android listview添加数据_Android面经分享,失业两个月,五一节前拿到offer

秦子帅明确目标&#xff0c;每天进步一点点.....作者 | 天天有道地址 | juejin.im/post/5eb01866f265da7b9c24562c基本介绍今天介绍一位朋友的经历&#xff1a;从3月初开始复习&#xff0c;准备面试题。复习的资料主要为《Android开发艺术探索》和jsonchao的博客&#xff0c;…

Dapr + .NET 实战(四)发布和订阅

什么是发布-订阅发布订阅是一种众所周知并被广泛使用的消息传送模式&#xff0c;常用在微服务架构的服务间通信&#xff0c;高并发削峰等情况。但是不同的消息中间件之间存在细微的差异&#xff0c;项目使用不同的产品需要实现不同的实现类&#xff0c;虽然是明智的决策&#x…

词性分法程序

http://tieba.baidu.com/p/1180650771?pid13814874186&cid0#13814874186 给你个函数看看,分析下有什么用 句列表指针 存储的是一句话的数据,其中已经分好词,并知道每个词的词性.周春海(专有名词) 是(动词) 周依言(专有名词) 的(的词) 爸爸(抽象名词) .(句号词)程序里的词性…

计算机信息处理教案,冀教版七年级信息技术第二课计算机--信息处理工具 教案...

ID:10796280分类&#xff1a;江苏,2019资源大小&#xff1a;22KB资料简介:《第二课 计算机——信息处理工具》教学设计教 者&#xff1a;课时1教学内容&#xff1a;第二课 计算机——信息处理工具教学目标&#xff1a;1知识目标&#xff1a;学生应了解计算机的工作原理&#xf…