欢迎回来｡
到目前为止, 我们只找到了简单的模式｡
字符串中的简单文本模式｡
没什么太疯狂的｡
但正则表达式真正有用的是高级模式｡
你看, 用正则表达式你可以做一些疯狂的模式, 比如说, 这看起来完全是乱码,
对吧？
但这在正则表达式中有意义｡
您可以将正则表达式视为一种完整的语言, 它本身具有不同的模式,
您可以使用这些模式来查找文本中的模式｡
现在, 整个正则表达式的世界真的非常非常复杂｡
作为一个程序员, 我不期望你学习所有这些模式｡
你可以在这里看到其中的一些｡
我们有一些特殊的序列, 比如Slash DD返回一个匹配, 其中字符串包含从0到9的数字｡
这里有集合, 如果你输入一个正则表达式this, 它会返回一个匹配,
字母顺序在A和Z之间的任何字符, 不管它们是大写还是小写.
所以在正则表达式中有很多小的快捷方式和技巧｡
事情会变得非常非常复杂｡
所以没人会记住这些东西｡
您可以根据需要开发它们｡
事实上, 在稍后的视频中, 我们将做一个练习, 在那里我们将实际试验这个问题,
并创建一个密码检查程序和一个电子邮件检查程序｡
我非常非常喜欢的一个工具叫做RegEx 101｡
它非常非常有用｡
你所要做的就是选择Python, 它会给予你正则表达式和一个测试平台供你测试｡
例如, 如果我写了这样的话, 嘿, 你好吗？
我现在可以在这里输入正则表达式并进行尝试｡
比如说, 如果我输入Hey.
你好吗？
嗯嗯嗯
这不管用.
也许我可以在这里加上一些引语｡
但是没有｡
而且它实际上给了你一些选项和信息, 关于你可以使用什么｡
例如, 假设我们要检查｡
就在这里, 一个字符在A到Z或A到Z的范围内｡
如果我复制这个｡
我把它贴进去｡
看那个｡
它提供了我所有的匹配项｡
在本例中, 我将检查它是否匹配A到Z之间的任何字符？
小写和大写｡
现在一切都很匹配｡
你可以看到这里有第一场比赛, 第二场比赛, 第三场比赛, 依此类推｡
我也可以把东西分组, 这样我就可以在这里做括号了｡
现在这是第一个捕捉组｡
然后我就可以在这里做别的事情了｡
比如说在这里我想比如说任何一个｡
那么它在这里意味着什么呢？
好吧, 我在右边有个解释｡
第一个捕获组说, 嘿, 匹配下面列表中存在的单个字符｡
所以它告诉你A到Z｡
大写字母A到Z｡
然后第二个捕获组是hey, 匹配下面列表中存在的单个字符, 即a｡
现在在这里, 我有两个捕捉组｡
因此, 第一个捕获组和第二个捕获组｡
如果我在这里添加一个点, 这是一个特殊的含义和正则表达式, 如果我将鼠标悬停在上面,
您会看到它匹配除行终止符之外的任何字符｡
那我来这里干什么？
嗯, 我是第一个有｡
嘿, 我要你检查第一个捕获组, 它是A到Z范围内的任何单个字符｡
之后, 我想要任何角色｡
然后, 我要你仔细搜索任何匹配的｡
所以这就是我们的比赛｡
我们可能会匹配W, 因为我们要查找任意字母, 然后是空格或任意字符, 然后是A｡
所以现在我们有一个完整的比赛, 这是w2a, 然后我们有一组｡
它是w, 因为它匹配第一组, 然后是第二组, 它匹配A｡
我知道这很让人困惑｡
正则表达式是那些一开始很难弄清楚的东西之一｡
让我来告诉你我们如何使用它｡
如果我在这里打开代码生成器, 你会看到我实际上可以, 嗯, 给予你一个你可以在Python中使用的示例代码｡
但我喜欢做的其实是复制这段文字｡
就像这样｡
回到我们的代码编辑器和编译器中｡
贴进去｡
现在你会注意到这里有一个R, R代表一个原始字符串, 因为在Python中,
斜杠反斜杠有特殊的含义.
因为记住, 用反斜杠, 我们可以做一些特殊的事情, 比如换行或制表符｡
一个R说, 嘿, 这是一个原始字符串｡
忽略Python解释器可能解释的所有内容｡
我希望它是一个纯字符串, 这样你就可以在正则表达式中看到很多这样的东西｡
现在, 如果我运行这个代码｡
你看我这里有ACA｡
再说一次, 这是因为我在寻找一个｡
字母后面跟着任何后面跟着的东西｡
如果我在这里有一个组, 我正在搜索, 如果我选择组1｡
如果我做group to, 我得到s｡
我得到了一个就像我们在我们的游乐场在这里｡
另一个有用的东西在这里｡
如果你看一下快速参考, 你实际上可以搜索东西｡
假设我想检查一个测试字符串是否以maybe开头｡
我可以在这里输入start, 你可以看到, 哦, 它给了我一个快速参考｡
所以如果我从字符串开始, 它会告诉我, 嘿, 使用这个字符, 它会帮助你做启动字符串｡
所以如果我有, 假设这个胡萝卜, 看, 它和我的相匹配.
所以它说, 嘿, 在行的开头断言位置｡
它在这里准确地解释了它是如何工作的, 它告诉我, 我在这里有一个完全匹配的｡
现在, 大多数时候, 你使用正则表达式的方式不是这样的｡
事实上, 如果你只是自己想办法解决所有问题, 那会很难｡
就像我说的, 没人会记住这些东西｡
您可以看到, 我们提供了包含常见令牌的快速参考, 您可以浏览并理解这些令牌｡
但是, 实际学习正则表达式的一种更实用的方法是看一个真实的的用例｡
如果你想从我的经验中学习一些常见的模式, 我会给你一些练习｡
这不是任何人会在面试中问你的问题｡
你不一定要记住正则表达式｡
你只需要知道他们是干什么的｡
所以如果你想的话, 可以试试这些练习｡
否则, 我将在下一个视频中向您演示如何在真实的情况中使用正则表达式｡
我会看到你在那个｡
再见, 再见, 再见