正则表达式,通常简称为 regex,是一种强大的基于模式的文本选择工具。理解它们是掌握 Linux 文本操作的基础。虽然有很多学习 Linux 的应用程序,但深入研究“regular expression linux”等核心概念是快速达到 Linux 高级熟练度的途径。它们使用特殊的表示法,其中一些类似于 * 这样的通配符。
让我们探索一些最常见的 regex 运算符,它们在几乎所有编程语言中都是通用的。我们将使用以下文本作为示例:
sally sells seashells
by the seashore
锚定到行首
脱字符 ^ 符号匹配一行的开头。它确保你的模式只出现在起始位置。
^by
此模式将匹配“by the seashore”这一行,但不会匹配“sally sells seashells”。
锚定到行尾
美元符号 $ 匹配一行的末尾。它是 ^ 锚的对应项。
seashore$
此模式将匹配“by the seashore”这一行,因为它以“seashore”结尾。
匹配任意单个字符
句点 . 是一个通配符,匹配任何单个字符。
b.
在我们的示例中,这将匹配“by”。
使用方括号进行字符集匹配
方括号 [] 允许你指定一组要匹配的字符。这比 . 通配符提供了更多的控制。
s[ae]lls
这将匹配“sells”,也会匹配“salls”。
你也可以使用方括号来指定 不 匹配什么。当脱字符 ^ 是方括号内的第一个字符时,它会否定该集合,匹配除列出的字符 之外 的任何字符。
s[^e]lls
这将匹配“salls”但不会匹配“sells”。
最后,方括号支持范围,可以有效地定义一组较大的字符。
d[a-c]g
此模式将匹配“dag”、“dbg”和“dcg”。请注意,范围是区分大小写的。例如,[a-c] 不会匹配 A、B 或 C。
学习这些运算符是提高 Linux 命令行效率的最佳方法之一。