正则表达式可能很痛苦。 嗯,有时!
让我们了解正则表达式及其模式。 我们将研究这些看起来像是令人费解的字符汤的模式。 我们将看到正则表达式中每个字符的含义。
阅读本文后,您将能够创建正则表达式并随意使用它们。 最后,我们还将列出一些在线 RegEx 测试工具,以便您可以根据需要创建您的 RegEx 并使用这些工具对其进行测试。
目录
介绍
正则表达式或众所周知的 – RegEx 是可用作搜索字符或字符串的模式的任何字符序列。
例如——要确定一个字符串或短语是否包含单词“apple”,我们可以使用正则表达式“/apple”在字符串中进行搜索。 再举一个例子,我们可以使用“/[0-9]” 检查给定字符串是否包含 0 到 9 之间的数字。
正则表达式及其使用
正则表达式广泛用于现代网络相关操作中的各种目的。 Web 表单验证、Web 搜索引擎、IDE 中的词法分析器、文本编辑器和文档编辑器是经常使用正则表达式的几个示例。
我们都多次使用“CTRL + F”在文档或一段代码中搜索以查找特定单词或短语或表达式。 这个操作可以被指出为使用正则表达式的一个非常常见的例子。
在继续之前,让我们看一下一个非常常用的正则表达式。
你能猜到🤔下面的 RegEX 它是做什么用的吗?
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
如果您猜不到,请不要担心。 我敢肯定,您将能够在本文末尾猜到。
首先让我们从 RegEx 的 A、B、C 开始。
代币
首先,让我们看看上面显示的正则表达式中的各种符号。
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
如果我们查看上面给出的正则表达式,我们可以看到它由许多符号或字符或标记组成。 让我们找出它们的含义:
令牌
意义
^
此标记表示字符串的开始。
(……)
这表示一个组,其中捕获了 (…) 中给出的所有内容。
[…]
这 [] 包含任何可以匹配的字符。 例如 – [abc] 将匹配 a 或 b 或 c。
阿兹
从 a 到 z 的一组小写字母。 我们必须记住,Regex 是区分大小写的。
AZ
从 A 到 Z 的大写字符集。
0-9
从 0 到 9 的数字。
_
这将匹配字符_。
这是转义字符。
.
这匹配字符“.” 字面上地。 之所以使用这是因为符号“。” in regex 本身就是一个标记,它匹配任何字符
+
这是一个量词。 这与它一起使用的一个或多个字符匹配。 例如,a+ 表示字符 a 出现一次或多次。
–
这将匹配“-”字符。
@
这将匹配“@”字符。
{}
这是另一个量词。 它用于表示字符出现的次数。 例如,a{3} 表示正好 3 个 a。
$
这表示字符串的结尾。
给定正则表达式模式的分解
现在,有了这些令牌的初步知识,让我们尝试解码上面的正则表达式:
- ^([a-zA-Z0-9_-.]+) 表示我们正在寻找一个至少以一个或多个大写或小写字母数字字符、下划线、连字符或点开头的字符串。 例如,任何与 user_name.01 相似的内容都将匹配该模式。 我们必须记住,这里不需要包含所有符号,只需包含其中的任何一个字符 [a-zA-Z0-9_-.] 会做。
- @ 字符匹配单个出现的@。 添加到前面的示例中,例如 [email protected] 会合适的。
- ([a-zA-Z0-9_-.]+) 与第一点类似。 这也意味着我们正在寻找一个至少包含一个或多个字母数字字符、下划线、连字符或点的字符串。 添加到示例中, [email protected] 适合这里。
- 正如您可能已经猜到的那样,我们暗示了一种电子邮件模式。 继续, 。 匹配单个“.” 特点。 如果我们继续进行中的示例,例如 [email protected]
- ([a-zA-Z]{2,5})$ 这意味着字符串应该以 2 到 5 个大写或小写字母字符结尾。 如果我们将 .com 添加到前面的示例中,我们可以得到 [email protected],这是电子邮件字符串的常见模式。
结合以上所有内容,我们可以看到我们正在搜索电子邮件 ID 字符串。 现在我们可以使用这个表达式来验证任何电子邮件 ID。 如果我们的测试电子邮件 ID 与此模式匹配,我们可以说它是一个有效的电子邮件 ID。
PS – 这是网络上最常见的电子邮件 ID 的模式。
代币类型
许多标记可以在正则表达式中以各种组合使用,以描述各种各样的表达式。 下面我们将看一下正则表达式中使用的各种类型的标记。 此外,我们还将查看每个类别中最常用的标记。
基本代币
让我们从基本的令牌开始。 这些标记几乎与每个正则表达式一起使用。 因此,我们必须先了解它们。
令牌
意义
r
这与回车符匹配。