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

基本类:\d \w \s

Beyond literal characters, regex give you predefined classes: shortcuts for "any digit", "any word character", "any whitespace". They are the first step toward truly useful patterns.

ClassMatches
\dA digit (0-9)
\wA word character (A-Za-z0-9_)
\sA whitespace (space, tab, newline, etc.)
\DNOT a digit
\WNOT a word character
\SNOT a whitespace

Each one matches a single character. To match "one or more characters" you need quantifiers (+, in module 2), but we will use + right away because "find me all the numbers" is too useful to wait for.

Code
Pattern: \d+
Sample:  Ho 3 mele, 12 pere e 100 prugne.
            ^      ^^      ^^^

\d+ means one or more consecutive digits: it matches 3, 12 and 100 as three separate matches (with the g flag).

\w: word characters

\w is equivalent to [A-Za-z0-9_] (ASCII letters, digits, underscore). It does NOT include accents, Greek letters or emoji: for those you need Unicode property escapes (\p{L}, module 5).

Deep dive into basic classes and negations

Predefined classes \\d, \\w, \\s speed up coding. Uppercase versions (\\D, \\W, \\S) negate the set. For instance, \\S+ captures any block of text devoid of spaces (like whole words including punctuation). The engine handles \\s by matching not only the standard space, but also tabs (\\t) and newline characters (\\n or \\r).

Try it

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

Extract every sequence of consecutive digits (numbers) from the text. Use the `\\d` class with the `+` quantifier.

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

\\d+ captures one or more digits. With the g flag you collect every match.

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

Review exercise

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

Find every 'word' in the text: a continuous sequence of word characters (`\\w+`).

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

\\w+ matches sequences of letters/digits/underscore. Punctuation is skipped.

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

Additional challenge

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

Find all sequences of one or more consecutive whitespace characters in the text (including spaces, tabs, and newlines).

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

Use the \s class with the + quantifier to capture consecutive whitespace sequences.

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