Khóa học
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. \dlà 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ảo10được xem là một số thay vì1và0.
- Dùng hàm
- 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ị
10và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ô-đunx. - Đố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 để inmatches.
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ớpxchữ số.
- Dùng
- Một số điện thoại theo định dạng
- 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 ý.
- Dùng
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,xxxvà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.