序言
Section outline
-
什么是正则表达式?
正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于表示字符串匹配模式的方法。它可以用于查找、选择或修改文本数据记录中的特定字符串。由于其强大的功能,正则表达式被广泛应用于各种文本处理工具和编程语言中。
示例应用
许多软件应用程序都使用正则表达式来查找、选择或修改特定文本。例如:
- 替换:使用正则表达式将文本中的
"snake"
替换为"serpent"
。 - 搜索:查找同时包含
"fox"
和"sheep"
的行。
正则表达式的组成
正则表达式由以下三种组件构成:
- 锚点(Anchors):用于指定匹配模式在文本行中的位置。
- 字符集(Character Sets):用于匹配某个位置上的一个或多个字符。
- 修饰符(Modifiers):用于指定字符集的重复次数。
不同应用程序的正则表达式语法
不同的应用程序对正则表达式的语法有不同的实现方式。例如:
- Shell 使用了一种受限的正则表达式(Shell Regular Expressions),用于文件名匹配(通配符)。
- AWK 使用的是扩展正则表达式(Extended Regular Expressions, ERE)的超集,比 Shell 更强大。
支持正则表达式的软件
正则表达式被许多软件工具所支持,包括命令行工具、文本编辑器和编程语言,且适用于 Linux、Windows 和 macOS 等操作系统。
命令行工具 纯文本编辑器 编程语言 grep
ed
.NET
egrep
vi
AWK
sed
Emacs
Java
Notepad++
JavaScript
Perl
PHP
Python
Ruby
Tcl
正则表达式的本质
可以把正则表达式看作一个迷你计算机程序,它的任务是查找或提取文本中的某个子集。就像计算机程序需要计算机才能执行一样,正则表达式需要特定的软件应用程序来解析并执行它,从而赋予它实际的意义。
例如:
- 在文本编辑器中,可以使用正则表达式查找**"Chapter"** 后面跟着多个空格和数字的文本。
- 在 UNIX 命令行中,使用
grep
命令只显示包含 "Wiki" 后面跟着 "Books" 或 "pedia" 的行。
在下一章中,我们将详细讨论正则表达式的具体语法。
- 替换:使用正则表达式将文本中的