正则表达式初学者指南

您是否曾尝试在一段文本中找到重复出现的模式? 您可能在浏览器或文字处理器中使用过类似搜索功能的功能,但当您需要查找更复杂的内容时,就像大海捞针一样。

幸运的是,有一种方法可以从文本中精确到字符的模式。 它被称为正则表达式 (RegEx),它可以让您成为搜索文本的大师。

我在哪里可以使用正则表达式?

尽管 Unix 和 Linux 使它们流行起来,但正则表达式可用于各种软件包,包括 Microsoft Word.

正则表达式最显着地用于几个著名的 Linux 程序,包括 grep, AwkSed.

为了 example,您可能需要检查 PC 上的 USB 设备。 使用 lspci,您将看到所有设备的列表,并且您必须自己找到 USB 条目。 您可以改为使用以下内容仅显示 USB 设备:

这是最简单的 example 正则表达式在行动。 这是在终端中使用正则表达式最流行的方式,但不是唯一的方式。 今天,您可以在许多不同类型的软件中找到 RegEx 支持,从文本编辑器到文件管理器。

寻找模式

你可能用过 * 字符,在终端中选择文件或文件夹时充当通配符。 为了 example要列出文件夹中的所有 JPG 文件,您可以使用:

与上述等效的 RegEx 将是:

正则表达式过滤器 Jpgs 简介

要同时搜索 jpg 和 png 文件,请使用:

范围

如果要搜索特定范围的字符而不是模式,可以通过在括号中定义它来实现。 如果,对于 example, 你用 [a-z] 作为您的模式,这将匹配由字母表的任何小写字母组成的任何字符串。

你可能已经猜到了, [A-Z] 只会选择大写字母。 要选择任何范围的字母,无论是大写还是小写,表达式将更改为 [a-zA-Z].

要找到特定数量的模式实例,您可以在大括号中声明它。 {5} 将返回您的模式的五次出现。 你也可以使用数字范围,所以 {5,10} 会为您提供五到十个实例。

元字符

在正则表达式中,您还可以搜索包含两个字符(称为元字符)的字符串部分。 它们类似于您可能在 shell 中使用的通配符匹配。

第一个是简单的点,它代表任何其他单个字符。 如果你使用了模式 c.ll,它会匹配“cell”,但也会匹配“cull”和“call”。

通过在点后输入星号,您可以使用它来匹配无限数量的字符。 为了 example, .*board 将匹配“键盘”和“滑板”。 即使“key”和“skate”的字母数量不同。

逃脱

您可能已经注意到,在我们的 example,我们选择了不同类型的图像文件,我们在句点之前使用了反斜杠(“.jpg”)。 这就是您在 RegEx 中转义特殊字符的方式。

如果我们不使用它们,我们的模式将不会只匹配文件的扩展名,如“.jpg”和“.png”这样的字符串,还会匹配“ajpg”和“opng”。 记住, . 是匹配任何字符的通配符。

锚点和边界

锚点和边界允许您更准确地定义您正在寻找的内容。

要仅查找单个单词“computer”,前后不附加任何其他字符,您应该将模式定义为 <computer>.

您还可以专门搜索出现在行首或行尾的模式。 这是通过 ^$ 分别是字符。

因此,如果您只想查找在行首出现“计算机”一词的条目,您的模式看起来像 ^computer. 相反,当它位于行尾时,模式将变为 computer$.

这些是 RegEx 的简单规则,您也可以混合使用这些规则来精确找到您正在寻找的模式。 您可以使用单个文本字符串搜索行首的字符范围或行尾的交替单词、特定日期或年份范围。

不要忘记查看我们的正则表达式备忘单以掌握正则表达式。

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅