Thay thế tất cả hoặc n lần xuất hiện của một chuỗi con trong một chuỗi đã cho là một vấn đề khá phổ biến trong thao tác chuỗi và xử lý văn bản nói chung. May mắn thay, hầu hết các tác vụ này đều được thực hiện dễ dàng trong Python nhờ vô số hàm tích hợp sẵn của nó, bao gồm cả hàm này
Giả sử, chúng ta có một chuỗi chứa câu sau
The brown-eyed man drives a brown car.
Mục tiêu của chúng ta là thay thế từ
string.replace[oldStr, newStr, count]
1 bằng từ string.replace[oldStr, newStr, count]
2The blue-eyed man drives a blue car.
Trong bài viết này, chúng ta sẽ sử dụng hàm
string.replace[oldStr, newStr, count]
3 cũng như hàm string.replace[oldStr, newStr, count]
4 và string.replace[oldStr, newStr, count]
5 với các mẫu để thay thế tất cả các lần xuất hiện của một chuỗi con từ một chuỗithay thế[]
Cách đơn giản nhất để thực hiện việc này là sử dụng chức năng tích hợp sẵn -
string.replace[oldStr, newStr, count]
3string.replace[oldStr, newStr, count]
Hai tham số đầu tiên là bắt buộc, trong khi tham số thứ ba là tùy chọn.
string.replace[oldStr, newStr, count]
7 là chuỗi con chúng tôi muốn thay thế bằng string.replace[oldStr, newStr, count]
8. Điều đáng chú ý là hàm trả về một chuỗi mới, với phép biến đổi được thực hiện mà không ảnh hưởng đến chuỗi ban đầuThử một lần đi
string_a = "The brown-eyed man drives a brown car."
string_b = string_a.replace["brown", "blue"]
print[string_a]
print[string_b]
Chúng tôi đã thực hiện thao tác trên
string.replace[oldStr, newStr, count]
9, đóng gói kết quả vào string_a = "The brown-eyed man drives a brown car."
string_b = string_a.replace["brown", "blue"]
print[string_a]
print[string_b]
0 và in cả haiMã này dẫn đến
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
Một lần nữa, chuỗi trong bộ nhớ mà
string.replace[oldStr, newStr, count]
9 trỏ tới vẫn không thay đổi. Các chuỗi trong Python là bất biến, điều đó có nghĩa đơn giản là bạn không thể thay đổi một chuỗi. Tuy nhiên, bạn có thể gán lại biến tham chiếu cho một giá trị mớiĐể dường như thực hiện thao tác này tại chỗ, chúng ta chỉ cần gán lại
string.replace[oldStr, newStr, count]
9 cho chính nó sau thao tácstring_a = string_a.replace["brown", "blue"]
print[string_a]
Ở đây, chuỗi mới được tạo bởi phương thức
string.replace[oldStr, newStr, count]
3 được gán cho biến string.replace[oldStr, newStr, count]
9Thay thế n lần xuất hiện của một chuỗi con
Bây giờ, nếu chúng ta không muốn thay đổi tất cả các lần xuất hiện của một chuỗi con thì sao?
Đó là nơi tham số thứ ba của hàm
string.replace[oldStr, newStr, count]
3 xuất hiện. Nó đại diện cho số lượng chuỗi con sẽ được thay thế. Đoạn mã sau chỉ thay thế lần xuất hiện đầu tiên của từ string.replace[oldStr, newStr, count]
1 bằng từ string.replace[oldStr, newStr, count]
2string_a = "The brown-eyed man drives a brown car."
string_a = string_a.replace["brown", "blue", 1]
print[string_a]
Và bản in này
The blue-eyed man drives a brown car.
Theo mặc định, tham số thứ ba được đặt để thay đổi tất cả các lần xuất hiện
Chuỗi con xuất hiện với biểu thức chính quy
Để nâng cao vấn đề hơn nữa, giả sử chúng ta không chỉ muốn thay thế tất cả các lần xuất hiện của một chuỗi con nhất định mà còn thay thế tất cả các chuỗi con phù hợp với một mẫu nhất định. Thậm chí điều này có thể được thực hiện với một lớp lót, sử dụng các biểu thức chính quy và mô-đun
string_a = "The brown-eyed man drives a brown car."
string_b = string_a.replace["brown", "blue"]
print[string_a]
print[string_b]
8 của thư viện tiêu chuẩnBiểu thức chính quy là một chủ đề phức tạp với nhiều mục đích sử dụng trong khoa học máy tính, vì vậy chúng tôi sẽ không đi sâu vào bài viết này nhưng nếu bạn cần bắt đầu nhanh, bạn có thể xem hướng dẫn của chúng tôi về Biểu thức chính quy trong Python
Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Về bản chất, một biểu thức chính quy xác định một mẫu. Ví dụ: giả sử chúng tôi có một văn bản về những người sở hữu chó và mèo và chúng tôi muốn thay đổi cả hai điều khoản bằng từ
string_a = "The brown-eyed man drives a brown car."
string_b = string_a.replace["brown", "blue"]
print[string_a]
print[string_b]
9. Trước tiên, chúng ta cần xác định một mẫu phù hợp với cả hai thuật ngữ như - The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
0Sử dụng hàm sub[]
Với mẫu đã được sắp xếp, chúng ta sẽ sử dụng hàm
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
1 có cú pháp saure.sub[pattern, repl, string, count, flags]
Đối số đầu tiên là mẫu mà chúng tôi đang tìm kiếm [một chuỗi hoặc một đối tượng
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
2], The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
3 là những gì chúng tôi sẽ chèn [có thể là một chuỗi hoặc một hàm; nếu đó là một chuỗi, bất kỳ dấu gạch chéo ngược nào thoát khỏi nó là Các đối số tùy chọn lần lượt là
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
5 và The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
6 cho biết số lần xuất hiện cần được thay thế và các cờ được sử dụng để xử lý biểu thức chính quyNếu mẫu không khớp với bất kỳ chuỗi con nào, chuỗi ban đầu sẽ được trả về không thay đổi
import re
string_a = re.sub[r'[cat|dog]', 'pet', "Mark owns a dog and Mary owns a cat."]
print[string_a]
mã này in
The blue-eyed man drives a blue car.
0So khớp mẫu không phân biệt chữ hoa chữ thường
Ví dụ: để thực hiện khớp mẫu phân biệt chữ hoa chữ thường, chúng tôi sẽ đặt tham số cờ thành
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
7The blue-eyed man drives a blue car.
1Giờ đây, bất kỳ trường hợp kết hợp nào của
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
8 cũng sẽ được đưa vào. Khi so sánh mẫu với nhiều chuỗi, để tránh sao chép nó ở nhiều nơi, chúng ta có thể xác định một đối tượng The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
2. Chúng cũng có hàm string.replace[oldStr, newStr, count]
4 với cú phápThe blue-eyed man drives a blue car.
2Sử dụng Đối tượng Mẫu
Hãy xác định một
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
2 cho mèo và chó và kiểm tra một vài câuThe blue-eyed man drives a blue car.
3Cung cấp cho chúng tôi đầu ra
The blue-eyed man drives a blue car.
4Hàm subn[]
Ngoài ra còn có một phương thức
string.replace[oldStr, newStr, count]
5 với cú phápThe blue-eyed man drives a blue car.
5Hàm
string.replace[oldStr, newStr, count]
5 trả về một Tuple có chuỗi và số lượng khớp trong Chuỗi mà chúng tôi đã tìm kiếmThe blue-eyed man drives a blue car.
6Các tuple trông giống như
The blue-eyed man drives a blue car.
7Một đối tượng
The brown-eyed man drives a brown car.
The blue-eyed man drives a blue car.
2 chứa một hàm string.replace[oldStr, newStr, count]
5 tương tựThe blue-eyed man drives a blue car.
8Và nó được sử dụng theo một cách rất giống nhau
The blue-eyed man drives a blue car.
9Kết quả này trong
string.replace[oldStr, newStr, count]
0Phần kết luận
Python cung cấp các hàm dễ dàng và đơn giản để xử lý chuỗi. Cách dễ nhất để thay thế tất cả các lần xuất hiện của một chuỗi con đã cho trong một chuỗi là sử dụng hàm
string.replace[oldStr, newStr, count]
3Nếu cần, mô-đun
string_a = "The brown-eyed man drives a brown car."
string_b = string_a.replace["brown", "blue"]
print[string_a]
print[string_b]
8 của thư viện tiêu chuẩn cung cấp bộ công cụ đa dạng hơn có thể được sử dụng cho các vấn đề thích hợp hơn như tìm mẫu và tìm kiếm phân biệt chữ hoa chữ thường