按《程序员修炼之道》 书中提到,熟练掌握一种文本编辑器,本人比较认同,所以有了这篇文章。
因为Notepad++项目是基于另一个开源编辑器Scintilla,所有关于Scintilla 的正则表达式也同样适用Notepad++。
第一部分:要开始用正则表达式前,必须了解特殊字符列
正则表达式的特殊字符列表如下:
.
匹配任意字符
(
标记域的开始符(具体使用可参见例子)
)
标记域的结束符(具体使用可参见例子)
\n
n可以是1到9 代表正在替换的第一到第九的标记域
\<
匹配Scintilla定义的单词的开始
\>
匹配Scintilla定义的单词的结束
\x
转义符. 例如, \[ 表示 [ 而不是字符集(character set)的开始符.
[...]
字符集(character set), 例如, [abc] 代表字符 a, b or c. 也可以使用范围, 如 [a-z] 代表所有小写字母
[^...]
非字符集中的字符. 例如, [^A-Za-z] 代表处理大小写字母以外的字符
^
行开始符
$
行尾符
*
匹配0次或多次. 例如, Sa*m 匹配 Sm , Sam , Saam , Saaam等等.
+
匹配1次或多次. 例如, Sa+m 匹配 Sam , Saam , Saaam and 等等.
第二部分:五个例子
例子1:
目标:如何把 Fred2XXX 替换成 Sam2YYY
技巧:搜索 Fred([1-9])XXX 替换成 Sam\1YYY
例子2:
目标:把 == title == 替换成 = title =
技巧:分两步:1, 搜索 ^=(=) 替换成 \1 ;2, 搜索=(=)$ 替换成\1。
例子3:
目标:把德国日期格式(dd.mm.yy) 转换成(yy-mm-dd)格式。
技巧:搜索 ([^0-9])([0123][0-9])\.([01][0-9])\.([0-9][0-9])([^0-9]) 替换成\1\4-\3-\2\5
* 31.12.97 became 97-12-31
* 14.08.05 became 05-08-14
* the IP address 14.13.14.14 虽然匹配,但是要小心不要改变
例子四:
目标:在一个目录中通过命令 dir /b/s > filelist.txt,修改文件中的\为/,并加上前缀file:///。
技巧:分两步:1, 搜索 \\ 替换为 / ;2, 搜索 ^(.*)$ 替换为 file:///\1
例子五:(英文原文中,这个例子有误,我这里修正了)
目标:把文中的空格替换成,
[Data]
EU AX ALA 248 ?and Islands
EU AL ALB 008 Albania, People's Socialist Republic of
AF DZ DZA 012 Algeria, People's Democratic Republic of
OC AS ASM 016 American Samoa
EU AD AND 020 Andorra, Principality of
AF AO AGO 024 Angola, Republic of
NA AI AIA 660 Anguilla
AN AQ ATA 010 Antarctica (the territory South of 60 deg S)
NA AG ATG 028 Antigua and Barbuda
SA AR ARG 032 Argentina, Argentine Republic
AS AM ARM 051 Armenia
NA AW ABW 533 Aruba
OC AU AUS 036 Australia, Commonwealth of
[Final Data]
EU,AX,ALA,248,?and Islands
EU,AL,ALB,008,Albania, People's Socialist Republic of
AF,DZ,DZA,012,Algeria, People's Democratic Republic of
OC,AS,ASM,016,American Samoa
EU,AD,AND,020,Andorra, Principality of
AF,AO,AGO,024,Angola, Republic of
NA,AI,AIA,660,Anguilla
AN,AQ,ATA,010,Antarctica (the territory South of 60 deg S)
NA,AG,ATG,028,Antigua and Barbuda
SA,AR,ARG,032,Argentina, Argentine Republic
AS,AM,ARM,051,Armenia
NA,AW,ABW,533,Aruba
OC,AU,AUS,036,Australia, Commonwealth of
技巧:搜索 ([A-Z]+) ([A-Z]+) ([A-Z]+) ([0-9]+) (.*) 替换为 \1,\2,\3,\4,\5
原始网址:How to use regular expressions in Notepad++
分享到:
相关推荐
5. **查找和替换**:强大的查找和替换功能,支持正则表达式,可以在整个项目中进行查找和替换,这对于代码重构非常有用。 6. **编码支持**:Notepad++支持多种字符编码,包括ASCII、UTF-8、Unicode等,确保了跨平台...
此外,Notepad++的搜索和替换功能也十分强大,尤其是其支持正则表达式的特性,使得在海量文本中快速查找和替换指定模式变得异常简单。 自定义是Notepad++吸引用户的一个重要特点。用户可以根据个人的喜好和工作需要...
它基于微软的Windows系统,提供了丰富的自定义功能,如多文档界面、查找替换(正则表达式支持)、代码折叠、自动完成等。此外,Notepad++还支持宏录制和播放,这对于自动化重复性的文本操作非常有用。由于它是免费...
正则表达式: 强大的查找和替换功能,支持正则表达式,方便进行复杂的文本处理。 多文档界面: 可以同时打开多个文档,进行多任务处理。 代码编辑: 支持代码的编辑,包括缩进、括号匹配等。 文件类型: 支持多种文件...
除了基本的文本编辑功能,Notepad++还具有查找和替换的强大功能,支持正则表达式,使得在大量文本中查找和替换特定模式变得简单快捷。此外,它的多文档界面允许同时打开和编辑多个文件,这对于处理多个项目或者比较...
5. **查找与替换**:强大的查找和替换功能,不仅支持简单的文本搜索,还能进行正则表达式搜索,便于快速修改大量代码。 6. **多文档同时编辑**:编辑器可以同时打开并编辑多个文件,方便比较或协同工作。 7. **...
另外,Notepad 2提供了查找和替换的增强功能,支持正则表达式,这对于数据处理和文本修改任务来说非常有用。而且,它还可以设置自定义快捷键,满足不同用户的操作习惯,提升了使用舒适度。 在压缩包内的“notepad2...
这是一份整理的前端学习笔记,主要是关于学习前端的过程和知识的梳理,包括计算机基础知识、JavaScript、webpack 等,这个过程中也参考了很多的文章和课程,感谢这些内容帮助。期望这份笔记也可以对你学习前端有帮助...
这些功能可能涉及到正则表达式和字符串操作。 在压缩包子文件的文件名称列表中,只有一个文件名"notePad"。这可能是项目的主类文件,即运行程序时会执行的入口点。在这个类中,可能会有一个`main`方法,该方法负责...
- **查找/替换**:可以通过遍历Richtextbox的`SelectedText`,结合正则表达式进行查找与替换操作。 - **撤销/重做**:可以利用.NET Framework提供的`Undo()`和`Redo()`方法,实现文本操作的撤销和重做功能。 3. *...
### C#学习笔记知识点梳理 #### C#中关键字的小提示 C#作为一种强类型的语言,对关键字有着严格的规范。为了防止命名冲突,C#不允许使用关键字作为标识符。但是,在某些特殊情况下,如果确实需要使用关键字作为...
这可以通过编写Java程序实现,利用正则表达式进行文本匹配,或者使用现有的代码搜索工具如grep。 2. **日志分析**:如果TXT文件是日志文件,那么可能需要分析这些日志,找出特定的关键词,比如错误代码、异常信息,...
在计算机科学中,这通常涉及到字符串操作、正则表达式、自然语言处理等技术。 1. **文本编辑器**:基础的文字处理工具,如记事本、Notepad++、Sublime Text、Atom、Visual Studio Code等,它们提供基本的文本输入和...
6. **搜索和替换**:强大的查找和替换功能,支持正则表达式,能够进行复杂的文本操作。 7. **集成终端**:内置命令行终端,方便开发者在编辑器内部运行命令。 8. **自定义配置**:用户可以根据自己的喜好调整界面...
7. **RegexBuddy**:这是一款专为正则表达式设计的工具,可以帮助程序员编写和测试复杂的正则表达式规则。对于从事文本处理或数据提取任务的开发者来说,这是一个不可或缺的工具。 8. **PDF-XChange Viewer**:作为...
5. **文本处理**:可能用到String类的拼接、查找、替换等方法,以及正则表达式Regex类进行更复杂的文本操作。 6. **异常处理**:为了确保程序在遇到错误时能优雅地处理,需要使用try-catch块来捕获和处理可能出现的...