缙哥哥非常懒,当遇到重复的事情时,就喜欢通过批量处理来解决,而文本用的是 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” 以及它们的补集,必须选择区分大小写的选项。

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

  1. excel删除无尽空白行_?Excel你不知道的神技巧:提升工作效率必备,值得老师收藏!...

    随着互联网的普及,教学形式也不再仅仅是传统的纸媒板书时代了,越发达的城市,校园课堂基本都被多媒体+板书结合的形式覆盖,随之而来就萌生了一项新的技术--多媒体信息化教学技术,这项教学已经在很多城市普及开 ...

  2. python批量添加水印_用Python批量添加水印,提高工作效率!

    平常工作中,为保护原创,我们常常会给图片打水印,但是一般的工具存在水印只能添加在固定位置(比如左上.左下等),或者无法批量添加水印的问题.这些不灵活的应用会影响我们的工作效率. 今天,未明学院的老师就 ...

  3. 所有字符不含换行 正则表达式_网络爬虫 | 正则表达式

    正则表达式中匹配与查找 正则表达式,简称为regex,是文本模式的描述方法. >>> import re>>> pattern = re.compile('\d\d ...

  4. mysql 搜索正则表达式_[MySQL] 用正则表达式进行搜索

    正则表达式的作用就是匹配文本,讲一个模式(正则表达式)与一个文本串进行比较. 基本字符匹配 SELECT 列名 FROM 表名 WHERE 列名 REGEXP 条件 ORDER BY 列名; 形式与L ...

  5. php两个手机号正则表达式_最新手机号码正则表达式(php版)

    本文介绍下,用正则表达式验证手机号码的方法,可以验证最新的手机号码段,包括150.158.159.188等.有需要的朋友参考下吧. 之前,程序员之家,为大家介绍过一些用于验证手机号码的正则,比如: p ...

  6. oracle匹配靓号的正则表达式_靓号正则表达式匹配 疑问

    ChangeTheWorld 2018-08-20 14:54:04 +08:00 某扫号软件附件带的正则,楼主看看够不够用,发出来挺费金币的 ``` "*AAA*" " ...

  7. securecrt使用_使用securecrt提升工作效率的十个技巧

    securecrt是一款功能强大的终端工具,但功能多也造成了过于复杂,很多人只是把它当成一个普通的终端使用,不知道这里面有很多有用的技巧可以提高工作效率.一位老中医多年总结的十大技巧,简单.有效.老司 ...

  8. 工作空间出错_实践 | WMS系统,对于仓库工作效率和成本管控的意义

    说到高效率,小编相信很多人的脑海中出现了这样的场景: "员工在车间工作的风风火火,一个人在仓库间来来回回的拿货.入库,仓库门口人们不停的把货物放到核验区." 在人们的意识里高效就是 ...

  9. 敲代码时如何快速移动光标_如何用 Linux 技巧大大提高工作效率?

    前言 Linux中的一些小技巧可以大大提高你的工作效率,本文就细数那些提高效率或者简单却有效的Linux技巧. 命令编辑及光标移动 这里有很多快捷键可以帮我们修正自己的命令.接下来使用光标二字代替光标 ...

最新文章

  1. 如何将html页面上的形状存储,css – html -split一个页面成为所需的形状作为div?...
  2. linux ffmpeg 64下载,linux ffmpeg 怎么编64位
  3. 基础004_V7-DSP Slice
  4. Android系统启动流程源码分析
  5. 拓端tecdat|基于R统计软件的三次样条和光滑样条模型数据拟合及预测
  6. perl语言中数组初始化为空和undef的不同
  7. Rockwell AB PLC 控制器EDS 更新下载更新方法
  8. qq等级查询php源码,最新沉沦QQ等级代挂系源码统开源分享
  9. 数模3—Matlab线性规划、非线性规划、多目标规划(超全解法合集)
  10. Learning Sites
  11. php把数组作为函数参数传递,使用关联数组作为函数的参数《 PHP 基础 》
  12. win10锁屏幻灯片放映不能播放幻灯片问题的一种解决办法
  13. 叁拾伍- Django Websocket 绝望之旅(dwebsocket 以及 channels)
  14. 2021年中国农副食品加工行业现状分析:营业利润同比增长3.7%[图]
  15. 杠子老虎鸡虫 《python二维游戏编程》课后项目一
  16. uni-app:使用uni.downloadFile下载文件并保存到手机
  17. SAP CRM 如何高效debug 查看BOL的值
  18. C# FileInfo类:文件操作
  19. 中央直属企业名单【中国级别最高的169家企业】(转)--找工作按这个来
  20. 51nod 1770数数字(找规律)

热门文章

  1. STM32f103VCT6点灯(寄存器编程)
  2. Android开源库大全分类汇总(Android技术资料汇总)
  3. 继电器/接触器选型及使用
  4. 云队友丨那些工作能力强的人,是怎么做到的?
  5. origin作图模版的设置与调用
  6. 2013年专利代理人考试复习规划
  7. flutter图片识别_flutter实现文字识别之图片拖拽选框选取截取文字
  8. clickhouse集群部署
  9. 好未来“守”,新东方“闯”
  10. 思科AP1832me和2702升级记录