章节大纲

  • 什么是正则表达式?

    正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于表示字符串匹配模式的方法。它可以用于查找、选择或修改文本数据记录中的特定字符串。由于其强大的功能,正则表达式被广泛应用于各种文本处理工具和编程语言中。


    示例应用

    许多软件应用程序都使用正则表达式来查找、选择或修改特定文本。例如:

    • 替换:使用正则表达式将文本中的 "snake" 替换为 "serpent"
    • 搜索:查找同时包含 "fox""sheep" 的行。

    正则表达式的组成

    正则表达式由以下三种组件构成:

    1. 锚点(Anchors):用于指定匹配模式在文本行中的位置。
    2. 字符集(Character Sets):用于匹配某个位置上的一个或多个字符
    3. 修饰符(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" 的行。

    在下一章中,我们将详细讨论正则表达式的具体语法