Làm cách nào để thay đổi 3 ký tự đầu tiên trong python?

Nếu bạn đang tìm cách xóa hoặc thay thế tất cả hoặc một phần của chuỗi trong Python, thì hướng dẫn này là dành cho bạn. Bạn sẽ lấy một bản ghi phòng trò chuyện hư cấu và làm sạch nó bằng cả phương pháp

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 và hàm
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
8

Trong Python, phương thức

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 và hàm
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
8 thường được sử dụng để dọn sạch văn bản bằng cách loại bỏ chuỗi hoặc chuỗi con hoặc thay thế chúng. Trong hướng dẫn này, bạn sẽ đóng vai trò là nhà phát triển cho một công ty cung cấp hỗ trợ kỹ thuật thông qua trò chuyện văn bản trực tiếp. Bạn được giao nhiệm vụ tạo một tập lệnh sẽ làm sạch cuộc trò chuyện, xóa mọi dữ liệu cá nhân và thay thế mọi từ chửi thề bằng biểu tượng cảm xúc

Bạn chỉ được cung cấp một bản ghi cuộc trò chuyện rất ngắn

[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!

Mặc dù bản ghi này ngắn, nhưng đây là kiểu trò chuyện điển hình mà các đại lý luôn có. Nó có số nhận dạng người dùng, dấu thời gian ISO và thông báo

Trong trường hợp này, khách hàng

>>> name = "Fake Python"
>>> name.replace["Fake", "Real"]
'Real Python'

>>> name
'Fake Python'

>>> name = name.replace["Fake", "Real"]
'Real Python'

>>> name
'Real Python'
1 đã nộp đơn khiếu nại và chính sách của công ty là làm sạch và đơn giản hóa bảng điểm, sau đó chuyển nó cho cơ quan đánh giá độc lập. Vệ sinh tin nhắn là công việc của bạn

Mã mẫu. Nhấp vào đây để tải xuống mã mẫu miễn phí mà bạn sẽ sử dụng để thay thế các chuỗi trong Python

Điều đầu tiên bạn muốn làm là quan tâm đến bất kỳ lời chửi thề nào

Cách xóa hoặc thay thế chuỗi Python hoặc chuỗi con

Cách cơ bản nhất để thay thế một chuỗi trong Python là sử dụng phương thức chuỗi

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7

>>>

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'

Như bạn có thể thấy, bạn có thể xâu chuỗi

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 vào bất kỳ chuỗi nào và cung cấp phương thức với hai đối số. Đầu tiên là chuỗi mà bạn muốn thay thế và thứ hai là chuỗi thay thế

Ghi chú. Mặc dù trình bao Python hiển thị kết quả của

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7, nhưng bản thân chuỗi vẫn không thay đổi. Bạn có thể thấy điều này rõ ràng hơn bằng cách gán chuỗi của bạn cho một biến

>>>

>>> name = "Fake Python"
>>> name.replace["Fake", "Real"]
'Real Python'

>>> name
'Fake Python'

>>> name = name.replace["Fake", "Real"]
'Real Python'

>>> name
'Real Python'

Lưu ý rằng khi bạn chỉ gọi

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7, giá trị của
>>> name = "Fake Python"
>>> name.replace["Fake", "Real"]
'Real Python'

>>> name
'Fake Python'

>>> name = name.replace["Fake", "Real"]
'Real Python'

>>> name
'Real Python'
6 không thay đổi. Nhưng khi bạn gán kết quả của
>>> name = "Fake Python"
>>> name.replace["Fake", "Real"]
'Real Python'

>>> name
'Fake Python'

>>> name = name.replace["Fake", "Real"]
'Real Python'

>>> name
'Real Python'
7 cho biến
>>> name = "Fake Python"
>>> name.replace["Fake", "Real"]
'Real Python'

>>> name
'Fake Python'

>>> name = name.replace["Fake", "Real"]
'Real Python'

>>> name
'Real Python'
6, thì
>>> name = "Fake Python"
>>> name.replace["Fake", "Real"]
'Real Python'

>>> name
'Fake Python'

>>> name = name.replace["Fake", "Real"]
'Real Python'

>>> name
'Real Python'
9 trở thành
>>> transcript = """\
.. [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
.. [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
.. [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
.. [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!"""

>>> transcript.replace["BLASTED", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
0

Bây giờ là lúc để áp dụng kiến ​​thức này vào bảng điểm

>>>

>>> transcript = """\
.. [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
.. [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
.. [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
.. [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!"""

>>> transcript.replace["BLASTED", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!

Tải bảng điểm dưới dạng a và sau đó sử dụng phương pháp

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 trên một trong những từ chửi thề hoạt động tốt. Nhưng có một từ chửi thề khác không được thay thế vì trong Python, chuỗi cần khớp chính xác

>>>

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'

Như bạn có thể thấy, ngay cả khi cách viết hoa của một chữ cái không khớp, nó sẽ ngăn mọi sự thay thế. Điều này có nghĩa là nếu bạn đang sử dụng phương thức

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7, bạn sẽ cần gọi nó nhiều lần với các biến thể. Trong trường hợp này, bạn chỉ có thể thực hiện một cuộc gọi khác tới
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7

>>>

>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!

Sự thành công. Nhưng có lẽ bạn đang nghĩ rằng đây không phải là cách tốt nhất để làm điều này cho một thứ gì đó giống như công cụ sao chép đa năng. Bạn sẽ muốn tiến tới một số cách để có một danh sách thay thế, thay vì phải gõ

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 mỗi lần

Loại bỏ các quảng cáo

Thiết lập nhiều quy tắc thay thế

Có một số thay thế khác mà bạn cần thực hiện đối với bảng điểm để chuyển nó sang định dạng được chấp nhận để đánh giá độc lập

  • Rút ngắn hoặc xóa tem thời gian
  • Thay thế tên người dùng bằng Đại lý và Khách hàng

Bây giờ bạn bắt đầu có nhiều chuỗi hơn để thay thế, chuỗi trên

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 sẽ lặp đi lặp lại. Một ý tưởng có thể là giữ một danh sách các bộ dữ liệu, với hai mục trong mỗi bộ dữ liệu. Hai mục sẽ tương ứng với các đối số mà bạn cần chuyển vào phương thức
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7—chuỗi cần thay thế và chuỗi thay thế

# transcript_multiple_replace.py

REPLACEMENTS = [
    ["BLASTED", "😤"],
    ["Blast", "😤"],
    ["2022-08-24T", ""],
    ["+00:00", ""],
    ["[support_tom]", "Agent "],
    ["[johndoe]", "Client"],
]

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
"""

for old, new in REPLACEMENTS:
    transcript = transcript.replace[old, new]

print[transcript]

Trong phiên bản này của tập lệnh làm sạch bản ghi, bạn đã tạo một danh sách các bộ thay thế, cung cấp cho bạn một cách nhanh chóng để thêm các bộ thay thế. Bạn thậm chí có thể tạo danh sách các bộ này từ tệp CSV bên ngoài nếu bạn có nhiều bộ thay thế

Sau đó, bạn lặp lại danh sách các bộ dữ liệu thay thế. Trong mỗi lần lặp, bạn gọi

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 trên chuỗi, đưa vào các đối số các biến
>>> transcript = """\
.. [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
.. [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
.. [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
.. [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!"""

>>> transcript.replace["BLASTED", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
8 và
>>> transcript = """\
.. [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
.. [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
.. [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
.. [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!"""

>>> transcript.replace["BLASTED", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
9 đã được giải nén từ mỗi bộ thay thế trong các đối số

Ghi chú. Việc giải nén trong vòng lặp

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
0 trong trường hợp này có chức năng giống như sử dụng lập chỉ mục

for replacement in replacements:
    new_transcript = new_transcript.replace[replacement[0], replacement[1]]

Nếu bạn cảm thấy bối rối khi giải nén, thì hãy xem phần hướng dẫn về danh sách và bộ dữ liệu Python

Với điều này, bạn đã tạo ra một cải tiến lớn về khả năng đọc tổng thể của bảng điểm. Nó cũng dễ dàng hơn để thêm thay thế nếu bạn cần. Chạy tập lệnh này sẽ hiển thị bảng điểm rõ ràng hơn nhiều

$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!

Đó là một bảng điểm khá rõ ràng. Có lẽ đó là tất cả những gì bạn cần. Nhưng nếu cỗ máy tự động bên trong bạn không hài lòng, có thể là do vẫn còn một số thứ có thể đang làm bạn khó chịu.

  • Việc thay thế các từ chửi thề sẽ không hiệu quả nếu có một biến thể khác sử dụng -ing hoặc một cách viết hoa khác, chẳng hạn như BLAst
  • Xóa ngày khỏi dấu thời gian hiện chỉ hoạt động cho ngày 24 tháng 8 năm 2022
  • Loại bỏ dấu toàn thời gian sẽ liên quan đến việc thiết lập các cặp thay thế cho mọi thời điểm có thể—không phải là điều bạn quá muốn làm
  • Việc thêm khoảng trắng sau Tác nhân để sắp xếp các cột của bạn hoạt động nhưng không chung chung lắm

Nếu đây là những mối quan tâm của bạn, thì bạn có thể muốn chuyển sự chú ý của mình sang các biểu thức thông thường

Tận dụng
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
8 để tạo ra các quy tắc phức tạp

Bất cứ khi nào bạn muốn thực hiện bất kỳ thay thế nào phức tạp hơn một chút hoặc cần một số ký tự đại diện, bạn sẽ thường muốn chuyển sự chú ý của mình sang các biểu thức chính quy, còn được gọi là biểu thức chính quy

Regex là một loại ngôn ngữ nhỏ được tạo thành từ các ký tự xác định mẫu. Các mẫu hoặc biểu thức chính quy này thường được sử dụng để tìm kiếm các chuỗi trong các hoạt động tìm và tìm và thay thế. Nhiều ngôn ngữ lập trình hỗ trợ regex và nó được sử dụng rộng rãi. Regex thậm chí sẽ cung cấp cho bạn siêu năng lực

Trong Python, tận dụng biểu thức chính quy có nghĩa là sử dụng mô-đun

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
2 và xây dựng các mẫu biểu thức chính quy của riêng bạn

# transcript_regex.py

import re

REGEX_REPLACEMENTS = [
    [r"blast\w*", "😤"],
    [r" [-T:+\d]{25}", ""],
    [r"\[support\w*\]", "Agent "],
    [r"\[johndoe\]", "Client"],
]

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
"""

for old, new in REGEX_REPLACEMENTS:
    transcript = re.sub[old, new, transcript, flags=re.IGNORECASE]

print[transcript]

Mặc dù bạn có thể trộn và kết hợp hàm

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3 với phương thức
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7, ví dụ này chỉ sử dụng
>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3, vì vậy bạn có thể xem cách nó được sử dụng. Bạn sẽ lưu ý rằng bạn có thể thay thế tất cả các biến thể của từ chửi thề bằng cách chỉ sử dụng một bộ từ thay thế ngay bây giờ. Tương tự, bạn chỉ sử dụng một biểu thức chính quy cho dấu toàn thời gian

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
0

Bây giờ bảng điểm của bạn đã được khử trùng hoàn toàn, loại bỏ tất cả tiếng ồn. Làm thế nào điều đó xảy ra?

Mẫu biểu thức chính quy đầu tiên,

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
7, sử dụng ký tự đặc biệt
>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
8, ký tự này sẽ khớp với các ký tự chữ và số và dấu gạch dưới. Thêm bộ định lượng
>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
9 ngay sau nó sẽ khớp với 0 hoặc nhiều ký tự của
>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
8

Một phần quan trọng khác của mẫu đầu tiên là cờ

>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
1 khiến nó trở thành mẫu không phân biệt chữ hoa chữ thường. Vì vậy, bây giờ, bất kỳ chuỗi con nào chứa
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
2, bất kể viết hoa, sẽ được so khớp và thay thế

Ghi chú. Mẫu

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
7 khá rộng và cũng sẽ sửa đổi
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
4 thành
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
5. Nó cũng không thể xác định cách sử dụng lịch sự của từ này. Nó chỉ khớp với các ký tự. Điều đó nói rằng, những từ chửi thề điển hình mà bạn muốn kiểm duyệt không thực sự có nghĩa thay thế lịch sự

Mẫu biểu thức chính quy thứ hai sử dụng bộ ký tự và bộ định lượng để thay thế dấu thời gian. Bạn thường sử dụng bộ ký tự và bộ định lượng cùng nhau. Ví dụ, một mẫu biểu thức chính quy của

>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
6 sẽ khớp với một ký tự của
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
7,
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
8 hoặc
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
9. Đặt
>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
9 ngay sau nó sẽ khớp với 0 hoặc nhiều ký tự của
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
7,
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
8 hoặc
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
9

Có nhiều định lượng hơn, mặc dù. Nếu bạn đã sử dụng

# transcript_multiple_replace.py

REPLACEMENTS = [
    ["BLASTED", "😤"],
    ["Blast", "😤"],
    ["2022-08-24T", ""],
    ["+00:00", ""],
    ["[support_tom]", "Agent "],
    ["[johndoe]", "Client"],
]

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
"""

for old, new in REPLACEMENTS:
    transcript = transcript.replace[old, new]

print[transcript]
4, nó sẽ khớp chính xác mười ký tự của
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
7,
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
8 hoặc
>>> transcript.replace["BLASTED", "😤"].replace["Blast", "😤"]
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!
9 theo bất kỳ thứ tự nào và bất kỳ kết hợp nào. Cũng lưu ý rằng các ký tự lặp lại là dư thừa, vì vậy
# transcript_multiple_replace.py

REPLACEMENTS = [
    ["BLASTED", "😤"],
    ["Blast", "😤"],
    ["2022-08-24T", ""],
    ["+00:00", ""],
    ["[support_tom]", "Agent "],
    ["[johndoe]", "Client"],
]

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
"""

for old, new in REPLACEMENTS:
    transcript = transcript.replace[old, new]

print[transcript]
8 tương đương với
# transcript_multiple_replace.py

REPLACEMENTS = [
    ["BLASTED", "😤"],
    ["Blast", "😤"],
    ["2022-08-24T", ""],
    ["+00:00", ""],
    ["[support_tom]", "Agent "],
    ["[johndoe]", "Client"],
]

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
"""

for old, new in REPLACEMENTS:
    transcript = transcript.replace[old, new]

print[transcript]
9

Đối với dấu thời gian, bạn sử dụng bộ ký tự mở rộng gồm _______31_______0 để khớp với tất cả các ký tự có thể có mà bạn có thể tìm thấy trong dấu thời gian. Được ghép nối với bộ định lượng

for replacement in replacements:
    new_transcript = new_transcript.replace[replacement[0], replacement[1]]
1, điều này sẽ khớp với bất kỳ dấu thời gian nào có thể, ít nhất là cho đến năm 10.000

Ghi chú. Ký tự đặc biệt,

for replacement in replacements:
    new_transcript = new_transcript.replace[replacement[0], replacement[1]]
2, khớp với bất kỳ ký tự chữ số nào

Mẫu regex dấu thời gian cho phép bạn chọn bất kỳ ngày nào có thể ở định dạng dấu thời gian. Vì thời gian không quan trọng đối với người đánh giá độc lập các bảng điểm này, bạn thay thế chúng bằng một chuỗi trống. Có thể viết một biểu thức chính quy nâng cao hơn để lưu giữ thông tin thời gian trong khi xóa ngày

Mẫu biểu thức chính quy thứ ba được sử dụng để chọn bất kỳ chuỗi người dùng nào bắt đầu bằng từ khóa

for replacement in replacements:
    new_transcript = new_transcript.replace[replacement[0], replacement[1]]
3. Lưu ý rằng bạn thoát khỏi [
for replacement in replacements:
    new_transcript = new_transcript.replace[replacement[0], replacement[1]]
4] dấu ngoặc vuông [
for replacement in replacements:
    new_transcript = new_transcript.replace[replacement[0], replacement[1]]
5] vì nếu không từ khóa sẽ được hiểu là một bộ ký tự

Cuối cùng, mẫu biểu thức chính quy cuối cùng chọn chuỗi tên người dùng của khách hàng và thay thế nó bằng

for replacement in replacements:
    new_transcript = new_transcript.replace[replacement[0], replacement[1]]
6

Ghi chú. Mặc dù sẽ rất thú vị nếu đi vào chi tiết hơn về các mẫu biểu thức chính quy này, nhưng hướng dẫn này không phải về biểu thức chính quy. Làm việc thông qua hướng dẫn regex Python để có kiến ​​thức cơ bản về chủ đề này. Ngoài ra, bạn có thể sử dụng trang web RegExr tuyệt vời, bởi vì regex rất phức tạp và trình hướng dẫn regex ở mọi cấp độ dựa vào các công cụ tiện dụng như RegExr

RegExr đặc biệt tốt vì bạn có thể sao chép và dán các mẫu biểu thức chính quy và nó sẽ chia nhỏ chúng cho bạn bằng các giải thích

Với regex, bạn có thể cắt giảm đáng kể số lượng thay thế mà bạn phải viết ra. Điều đó nói rằng, bạn vẫn có thể phải nghĩ ra nhiều mẫu. Vì regex không phải là ngôn ngữ dễ đọc nhất nên việc có nhiều mẫu có thể nhanh chóng trở nên khó bảo trì

Rất may, có một mẹo hay với

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
8 cho phép bạn kiểm soát nhiều hơn một chút về cách hoạt động của sự thay thế và nó cung cấp một kiến ​​trúc dễ bảo trì hơn nhiều

Loại bỏ các quảng cáo

Sử dụng Gọi lại với
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
8 để kiểm soát nhiều hơn

Một mẹo mà Python và

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3 có sẵn là bạn có thể chuyển vào hàm gọi lại thay vì chuỗi thay thế. Điều này cung cấp cho bạn toàn quyền kiểm soát cách khớp và thay thế

Để bắt đầu xây dựng phiên bản tập lệnh làm sạch bản ghi này, bạn sẽ sử dụng mẫu biểu thức chính quy cơ bản để xem cách sử dụng lệnh gọi lại với

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3 hoạt động

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
1

Mẫu biểu thức chính quy mà bạn đang sử dụng sẽ khớp với dấu thời gian và thay vì cung cấp chuỗi thay thế, bạn đang chuyển tham chiếu đến hàm

$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
1. Bây giờ, khi
>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3 tìm thấy kết quả trùng khớp, nó sẽ gọi
$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
1 với một đối tượng khớp làm đối số

$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
1 chỉ in đối tượng mà nó nhận được dưới dạng đối số, nên khi chạy chương trình này, bạn sẽ thấy các đối tượng khớp được in ra bảng điều khiển

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
2

A là một trong những khối xây dựng của mô-đun

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
2. Hàm
$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
6 cơ bản hơn trả về một đối tượng khớp.
>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3 không trả lại bất kỳ đối tượng khớp nào mà sử dụng chúng ở hậu trường

Bởi vì bạn nhận được đối tượng khớp này trong cuộc gọi lại, bạn có thể sử dụng bất kỳ thông tin nào có trong nó để tạo chuỗi thay thế. Sau khi nó được tạo, bạn trả về chuỗi mới và

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3 sẽ thay thế kết quả khớp bằng chuỗi được trả về

Áp dụng Gọi lại cho Tập lệnh

Trong tập lệnh làm sạch bản chép lời của bạn, bạn sẽ sử dụng phương thức

$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
9 của đối tượng khớp để trả về nội dung của hai nhóm chụp và sau đó bạn có thể làm sạch từng phần theo chức năng riêng của nó hoặc loại bỏ nó

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
3

Thay vì có nhiều biểu thức chính quy khác nhau, bạn có thể có một biểu thức chính quy cấp cao nhất có thể khớp với toàn bộ dòng, chia nó thành các nhóm chụp có dấu ngoặc [

# transcript_regex.py

import re

REGEX_REPLACEMENTS = [
    [r"blast\w*", "😤"],
    [r" [-T:+\d]{25}", ""],
    [r"\[support\w*\]", "Agent "],
    [r"\[johndoe\]", "Client"],
]

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
"""

for old, new in REGEX_REPLACEMENTS:
    transcript = re.sub[old, new, transcript, flags=re.IGNORECASE]

print[transcript]
0]. Các nhóm chụp không ảnh hưởng đến quá trình so khớp thực tế, nhưng chúng ảnh hưởng đến đối tượng so khớp là kết quả của quy trình so khớp

  • # transcript_regex.py
    
    import re
    
    REGEX_REPLACEMENTS = [
        [r"blast\w*", "😤"],
        [r" [-T:+\d]{25}", ""],
        [r"\[support\w*\]", "Agent "],
        [r"\[johndoe\]", "Client"],
    ]
    
    transcript = """
    [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
    [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
    [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
    [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
    """
    
    for old, new in REGEX_REPLACEMENTS:
        transcript = re.sub[old, new, transcript, flags=re.IGNORECASE]
    
    print[transcript]
    
    1 khớp với bất kỳ chuỗi ký tự nào được đặt trong dấu ngoặc vuông. Nhóm chụp chọn ra chuỗi tên người dùng, ví dụ:
    >>> name = "Fake Python"
    >>> name.replace["Fake", "Real"]
    'Real Python'
    
    >>> name
    'Fake Python'
    
    >>> name = name.replace["Fake", "Real"]
    'Real Python'
    
    >>> name
    'Real Python'
    
    1
  • # transcript_regex.py
    
    import re
    
    REGEX_REPLACEMENTS = [
        [r"blast\w*", "😤"],
        [r" [-T:+\d]{25}", ""],
        [r"\[support\w*\]", "Agent "],
        [r"\[johndoe\]", "Client"],
    ]
    
    transcript = """
    [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
    [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
    [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
    [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
    """
    
    for old, new in REGEX_REPLACEMENTS:
        transcript = re.sub[old, new, transcript, flags=re.IGNORECASE]
    
    print[transcript]
    
    3 khớp với dấu thời gian mà bạn đã khám phá trong phần trước. Vì bạn sẽ không sử dụng dấu thời gian trong bảng điểm cuối cùng nên nó không được ghi lại bằng dấu ngoặc
  • # transcript_regex.py
    
    import re
    
    REGEX_REPLACEMENTS = [
        [r"blast\w*", "😤"],
        [r" [-T:+\d]{25}", ""],
        [r"\[support\w*\]", "Agent "],
        [r"\[johndoe\]", "Client"],
    ]
    
    transcript = """
    [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
    [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
    [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
    [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
    """
    
    for old, new in REGEX_REPLACEMENTS:
        transcript = re.sub[old, new, transcript, flags=re.IGNORECASE]
    
    print[transcript]
    
    4 khớp với dấu hai chấm theo nghĩa đen. Dấu hai chấm được sử dụng làm dấu phân cách giữa siêu dữ liệu thư và chính thư đó
  • # transcript_regex.py
    
    import re
    
    REGEX_REPLACEMENTS = [
        [r"blast\w*", "😤"],
        [r" [-T:+\d]{25}", ""],
        [r"\[support\w*\]", "Agent "],
        [r"\[johndoe\]", "Client"],
    ]
    
    transcript = """
    [support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
    [johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
    [support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
    [johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
    """
    
    for old, new in REGEX_REPLACEMENTS:
        transcript = re.sub[old, new, transcript, flags=re.IGNORECASE]
    
    print[transcript]
    
    5 khớp với bất kỳ chuỗi ký tự nào cho đến cuối dòng, đó sẽ là tin nhắn

Nội dung của các nhóm chụp sẽ có sẵn dưới dạng các mục riêng biệt trong đối tượng khớp bằng cách gọi phương thức

$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
9, phương thức này trả về một bộ gồm các chuỗi khớp

Ghi chú. Định nghĩa regex mục nhập sử dụng nối chuỗi ẩn của Python

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
4

Về mặt chức năng, điều này giống như viết tất cả ra thành một chuỗi.

# transcript_regex.py

import re

REGEX_REPLACEMENTS = [
    [r"blast\w*", "😤"],
    [r" [-T:+\d]{25}", ""],
    [r"\[support\w*\]", "Agent "],
    [r"\[johndoe\]", "Client"],
]

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!
"""

for old, new in REGEX_REPLACEMENTS:
    transcript = re.sub[old, new, transcript, flags=re.IGNORECASE]

print[transcript]
7. Sắp xếp các mẫu biểu thức chính quy dài hơn của bạn trên các dòng riêng biệt cho phép bạn chia nó thành nhiều phần, điều này không chỉ giúp nó dễ đọc hơn mà còn cho phép bạn chèn nhận xét nữa

Hai nhóm là chuỗi người dùng và thông báo. Phương thức

$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
9 trả về chúng dưới dạng một bộ chuỗi. Trong hàm
$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
1, trước tiên bạn sử dụng tính năng giải nén để gán hai chuỗi cho các biến

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
5

Lưu ý cách kiến ​​trúc này cho phép một biểu thức chính quy rất rộng và toàn diện ở cấp cao nhất, sau đó cho phép bạn bổ sung nó bằng các biểu thức chính xác hơn trong lệnh gọi lại thay thế

Hàm

$ python transcript_multiple_replace.py
Agent  10:02:23 : What can I help you with?
Client 10:03:15 : I CAN'T CONNECT TO MY 😤 ACCOUNT
Agent  10:03:30 : Are you sure it's not your caps lock?
Client 10:04:03 : 😤! You're right!
1 sử dụng hai hàm để xóa tên người dùng và từ xấu. Nó cũng sử dụng chuỗi f để biện minh cho các thông báo. Lưu ý cách
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
01 sử dụng biểu thức chính quy được tạo động trong khi
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
02 dựa vào xử lý chuỗi cơ bản hơn

Điều này bây giờ trông giống như một nguyên mẫu đầu tiên tốt cho tập lệnh làm sạch bản ghi. Đầu ra sạch sẽ

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
6

Đẹp. Sử dụng

>>> "Fake Python".replace["fake", "Real"]
'Fake Python'
3 với một cuộc gọi lại giúp bạn linh hoạt hơn rất nhiều trong việc kết hợp và kết hợp các phương thức khác nhau cũng như xây dựng các biểu thức chính một cách linh hoạt. Cấu trúc này cũng mang lại cho bạn nhiều cơ hội nhất để phát triển khi sếp hoặc khách hàng của bạn chắc chắn thay đổi yêu cầu của họ đối với bạn.

Loại bỏ các quảng cáo

Phần kết luận

Trong hướng dẫn này, bạn đã học cách thay thế chuỗi trong Python. Đồng thời, bạn đã chuyển từ việc sử dụng phương thức chuỗi cơ bản

>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
7 của Python sang sử dụng các lệnh gọi lại với
>>> "Fake Python".replace["Fake", "Real"]
'Real Python'
8 để kiểm soát tuyệt đối. Bạn cũng đã khám phá một số mẫu biểu thức chính quy và giải cấu trúc chúng thành một kiến ​​trúc tốt hơn để quản lý tập lệnh thay thế

Với tất cả những kiến ​​thức đó, bạn đã xóa thành công bản ghi cuộc trò chuyện, hiện đã sẵn sàng để xem xét độc lập. Không chỉ vậy, tập lệnh làm sạch bảng điểm của bạn còn nhiều chỗ để phát triển

Mã mẫu. Nhấp vào đây để tải xuống mã mẫu miễn phí mà bạn sẽ sử dụng để thay thế các chuỗi trong Python

Đánh dấu là đã hoàn thành

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Ian Currie

Ian là một mọt sách Python, người sử dụng nó cho mọi thứ, từ mày mò đến giúp mọi người và công ty quản lý công việc hàng ngày cũng như phát triển doanh nghiệp của họ

» Thông tin thêm về Ian

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Geir Arne

kate

Philipp

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Chủ Đề