Chuyển đến nội dung chính

Sử dụng biểu thức chính quy để làm sạch chuỗi

Hướng dẫn này lấy nội dung từ khóa học Cleaning Data in Python của DataCamp và giúp bạn làm sạch chuỗi bằng biểu thức chính quy.
Đã cập nhật 5 thg 10, 2026  · 4 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Nếu bạn muốn tham gia khóa học R Nhập môn miễn phí của chúng tôi, đây là liên kết.

Trích xuất giá trị số từ chuỗi

Trích xuất số từ chuỗi là tác vụ thường gặp, đặc biệt khi làm việc với dữ liệu phi cấu trúc hoặc tệp nhật ký.

Giả sử bạn có chuỗi sau: 'the recipe calls for 6 strawberries and 2 bananas'.

Sẽ hữu ích nếu trích xuất 6 và 2 từ chuỗi này để lưu lại dùng sau khi so sánh tỷ lệ dâu tây với chuối.

Khi dùng biểu thức chính quy để trích xuất nhiều số (chính xác hơn là nhiều lần khớp mẫu), bạn có thể dùng hàm re.findall(). Dan không đề cập đến điều này trong video, nhưng cách dùng khá đơn giản: Bạn truyền vào một mẫu và một chuỗi cho re.findall(), và nó sẽ trả về một danh sách các kết quả khớp.

Hướng dẫn

  • Import re.
  • Viết một mẫu sẽ tìm tất cả các số trong chuỗi sau: 'the recipe calls for 10 strawberries and 1 banana'. Để làm điều này:
    • Dùng hàm re.findall() và truyền cho nó hai đối số: mẫu, sau đó là chuỗi.
    • \d là mẫu để tìm chữ số. Ký tự này nên theo sau bởi + để phần tử trước đó được khớp một hoặc nhiều lần. Điều này đảm bảo 10 được xem là một số thay vì 1 và 0.
  • In các kết quả khớp để xác nhận biểu thức chính quy của bạn đã tìm được các giá trị 10 và 1.
# Import the regular expression module ____ # Find the numeric values: matches matches = re.findall('____', '____') # Print the matches print(____) # Import the regular expression module import re # Find the numeric values: matches matches = re.findall('\d+', 'the recipe calls for 10 strawberries and 1 banana') # Print the matches print(matches) Ex().test_import('re') Ex().test_correct(test_object('matches'), test_function('re.findall')) Ex().test_function('print') success_msg('Excellent work - your regular expression successfully extracted the numeric values 10 and 1 from the string!')
  • Dùng lệnh import x để import mô-đun x.
  • Đối số đầu tiên của re.findall() nên là \d+, và đối số thứ hai nên là chuỗi: 'the recipe calls for 10 strawberries and 1 banana'.
  • Dùng hàm print() đã cung cấp để in matches.

Nếu bạn thấy ổn thì tiếp tục bài tập tiếp theo! Nếu chưa, đây là video tổng quan.

Video tổng quan về việc dùng biểu thức chính quy để làm sạch chuỗi trong Python

Khớp mẫu

Trong bài tập này, bạn sẽ tiếp tục luyện kỹ năng biểu thức chính quy. Với mỗi chuỗi được cung cấp, nhiệm vụ của bạn là viết mẫu phù hợp để khớp nó.

Hướng dẫn

  • Viết các mẫu để khớp:
    • Một số điện thoại theo định dạng xxx-xxx-xxxx. Bạn đã làm việc này ở bài tập trước.
    • Một chuỗi có định dạng: Dấu đô la, một số lượng chữ số tùy ý, dấu thập phân, 2 chữ số.
      • Dùng \$ để khớp dấu đô la, \d* để khớp số lượng chữ số tùy ý, \. để khớp dấu thập phân, và \d{x} để khớp x chữ số.
  • Một chữ cái in hoa, theo sau là một số lượng ký tự chữ và số tùy ý.
    • Dùng [A-Z] để khớp bất kỳ chữ in hoa nào, theo sau là \w* để khớp số lượng ký tự chữ và số tùy ý.
import re # Write the first pattern pattern1 = bool(re.match(pattern='____', string='123-456-7890')) print(pattern1) # Write the second pattern pattern2 = bool(re.match(pattern='____', string='$123.45')) print(pattern2) # Write the third pattern pattern3 = bool(re.match(pattern='____', string='Australia')) print(pattern3) # Write the first pattern pattern1 = bool(re.match(pattern='\d{3}-\d{3}-\d{4}', string='123-456-7890')) print(pattern1) # Write the second pattern pattern2 = bool(re.match(pattern='\$\d*\.\d{2}', string='$123.45')) print(pattern2) # Write the third pattern pattern3 = bool(re.match(pattern='[A-Z]\w*', string='Australia')) print(pattern3) Ex().test_correct(test_object('pattern1'), test_function('re.match', index=1)) Ex().test_function('print', index=1) Ex().test_correct(test_object('pattern2'), test_function('re.match', index=2)) Ex().test_function('print', index=2) Ex().test_correct(test_object('pattern3'), test_function('re.match', index=3)) Ex().test_function('print', index=3) success_msg("Great work! You're mastering the fundamentals of writing regular expressions!")
  • Có ba thành phần trong mẫu đầu tiên mà biểu thức chính quy của bạn cần khớp: xxx, xxx và xxxx. Hai phần đầu được khớp bởi \d{3}, còn phần cuối được khớp bởi \d{4}. Mỗi thành phần này phải được ngăn cách bằng một dấu -.

Nếu bạn muốn học thêm từ khóa học này, đây là liên kết.

Xem thêm Hướng dẫn về Chuỗi trong Python của DataCamp.

Chủ đề
Python
Khoa học Dữ liệu

Tìm hiểu thêm về Python

Khóa học

Regular Expressions in Python

4 giờ
50.1K
Học về thao tác chuỗi và trở thành bậc thầy sử dụng biểu thức chính quy.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm