跳转到主要内容
模块 1 · 第 1 课(共 4)课程中的1/32~8 min
模块课程(1/4)

文字模式

在正则表达式中,“普通”字母数字字符简单地匹配自身:写 ciao 作为模式,引擎将在其中查找子字符串 ciao 文本。没有什么比这更神奇的了:从左到右扫描逐个位置。

Code
Pattern: ciao
Sample:  Buongiorno, ciao mondo! Ti dico anche ciao.
                     ^^^^                        ^^^^

一场比赛总是携带两个关键信息:

  • 匹配的文本(此处为 ciao);
  • 样本中起始位置的 索引(从 0 开始的偏移量)(此处为 12 和 38)。

默认情况下,正则表达式区分大小写:ciao 与 Ciao 不匹配或 CIAO。要忽略大小写,请添加 i 标志(不区分大小写)。

发动机如何工作

正则表达式引擎一次检查一个字符的文本。当搜索文字模式 ciao 时,它首先查找字母 c。一旦找到,它会验证下一个字符是否是 i,然后是 a,最后是 o。如果其中任何匹配失败,引擎将回溯到下一个起始位置并再次开始查找 c。

文字模式和 g 标志

如果没有 g (全局)标志,引擎将在它找到的第一个匹配处停止并停止。与 g 它继续并收集每个后续匹配项,直到字符串末尾。在本课程中我们将 几乎总是打开 g :我们希望看到文本中出现every匹配。

尝试一下

锻炼#regex.m1.l1.e1
尝试:0加载中...

查找示例中单词“ciao”的每个精确出现(区分大小写)。提示:记住“g”标志。

正在加载编辑器...
显示提示

模式就是单词本身。大写字母不得匹配:无 i 标志。

3 次尝试后可用的解决方案

复习练习

锻炼#regex.m1.l1.e2
尝试:0加载中...

查找文本中出现的所有单词“errore”,忽略大小写。

正在加载编辑器...
显示提示

与模式相同的单词,但在 g 旁边添加 i 标志(不区分大小写)。

3 次尝试后可用的解决方案

额外的挑战

锻炼#regex.m1.l1.e3
尝试:0加载中...

识别并收集示例日志文本中所有准确出现的单词“WARNING”(大写,区分大小写)。

正在加载编辑器...
显示提示

直接查找文字字符串 WARNING,确保不要激活 i 标志。

3 次尝试后可用的解决方案