Chuyển đến nội dung chính
eLearner.app
Mô-đun 7 · Bài học 4 trong tổng số 428/32 trong khóa học~10 min
Bài học theo mô-đun (4/4)

Tách bằng biểu thức chính quy

String.prototype.split(separator) accepts not only a fixed string but also a regex as separator. This makes it a powerful tool to tokenize structured text.

JS
'uno, due,tre  quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]

The regex /[,\s]+/ matches "one or more of comma or whitespace": split splits on any compound delimiter.

Typical cases

  • Permissive CSV: text.split(/\s*,\s*/) to handle spaces around commas.
  • Naive tokenizer: text.split(/\s+/) to extract words.
  • Keep the separator: if the regex contains capturing groups, the content of the groups is included in the result array.
JS
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]

Without the () group the semicolon would disappear. With (;) you keep it in the result.

Preserving separators in split operations

If you place split separators inside capturing parentheses, the output of String.prototype.split will include the separators themselves as elements in the final array, instead of discarding them.

Try it

tập thể dục#regex.m7.l4.e1
Nỗ lực: 0Đang tải…

Find every permissive CSV separator: a comma with optional spaces around it. This way you could use it in split to tokenize the list.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Use \\s* before and after the comma to absorb any optional spaces.

Giải pháp khả dụng sau 3 lần thử

Review exercise

tập thể dục#regex.m7.l4.e2
Nỗ lực: 0Đang tải…

Find every 'spaces or semicolons' separator (one or more). This way split would tokenize the text into words.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Combine \\s and ; in a class [\\s;] with the + quantifier.

Giải pháp khả dụng sau 3 lần thử

Additional challenge

tập thể dục#regex.m7.l4.e3
Nỗ lực: 0Đang tải…

Write a regex to use in a split that separates numbers while keeping math operators `+`, `-`, `*`, `/` as elements of the array.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Enclose the math operators character class in capture parentheses to preserve them in the split array.

Giải pháp khả dụng sau 3 lần thử