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

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

Anchors are zero-width assertions: they match a position in the string, not a character. The two most basic ones are ^ (start of string) and $ (end of string).

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

Pattern: \.$
Sample:  Frase finale.
                     ^

^Errore matches the word Errore only if it is at the absolute start of the sample. \.$ matches a period only if it is the last character of the sample. Nothing more, nothing less.

Full validation

The most common idiom is to use both together: ^pattern$ matches only if the entire string corresponds to pattern. It is the basis of validation:

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

Structured validation with start and end

Anchoring a pattern with ^ and $ is essential for validation. Without anchors, the regex \\d{5} will match inside abc1234567def, whereas with ^\\d{5}$ the string is rejected because the entire text must contain exactly 5 digits and nothing else.

Try it

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

Match the whole string ONLY if it contains exactly 4 digits, nothing before and nothing after.

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

Without anchors, \\d{4} would also accept '2024abc' or '12345' (first 4 digits).

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

Review exercise

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

Find the final period of the sentence, but ONLY if it is the last character of the sample.

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

\\.$ anchors the period to the end of the string. Without $ you would match the first period found.

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

Additional challenge

锻炼#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).

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

Put ^ at the beginning and $ at the end of the \d+ pattern.

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