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

开始和结束:`^` 和 `$`

锚点是零宽度断言:它们与 字符串,而不是字符。两个最基本的是 ^ (字符串开头) 和 $ (字符串结尾)。

Code
Pattern: ^Errore
Sample:  Errore: connessione persa
         ^^^^^^

Pattern: \.$
Sample:  Frase finale.
                     ^

^Errore 匹配单词 Errore 仅当它位于绝对开头时 样本的。 \.$ 匹配句点 仅当它是最后一个字符 样本的。不多不少。

全面验证

最常见的习惯用法是将两者一起使用:^pattern$ 匹配仅 如果整个字符串对应于 pattern。它的基础是 验证:

Code
^\d{4}$    a string of exactly 4 digits, nothing before, nothing after

具有开始和结束的结构化验证

使用 ^ 和 $ 锚定模式对于验证至关重要。如果没有锚点,正则表达式 \\d{5} 将在 abc1234567def 内匹配,而使用 ^\\d{5}$ 则字符串将被拒绝,因为整个文本必须恰好包含 5 个数字而没有其他内容。

尝试一下

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

仅当整个字符串恰好包含 4 位数字(前后没有任何内容)时才匹配整个字符串。

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

如果没有锚点,\\d{4} 也将接受“2024abc”或“12345”(前 4 位数字)。

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

复习练习

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

找到句子的最后一个句号,但前提是它是样本的最后一个字符。

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

\\.$ 将句点锚定到字符串的末尾。如果没有 $,您将匹配找到的第一个句点。

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

额外的挑战

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

Create a pattern that matches only if the entire input string consists exclusively of one or more digits (no other characters at start or end).

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

将 ^ 放在 \\d+ 模式的开头,将 $ 放在结尾。

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