Xóa chuỗi khỏi chuỗi python regex

Việc xóa các ký tự khỏi chuỗi rất hữu ích nếu bạn đang làm việc với đầu vào do người dùng tạo và cần xóa dữ liệu cũng như xóa các ký tự không mong muốn

Cụ thể, bạn có thể chỉ cần xóa một lần xuất hiện của một ký tự hoặc thậm chí tất cả các lần xuất hiện của một ký tự khỏi một chuỗi

Python cung cấp nhiều cách để giúp bạn làm điều này

Hai trong số những cách phổ biến nhất để xóa ký tự khỏi chuỗi trong Python là

  • sử dụng phương thức chuỗi
    my_string = "Hi! I! Love! Python!"
    
    0
  • sử dụng phương pháp chuỗi
    my_string = "Hi! I! Love! Python!"
    
    1

Khi sử dụng một trong hai phương thức, bạn có thể chỉ định [các] ký tự bạn muốn xóa khỏi chuỗi

Cả hai phương pháp đều thay thế một ký tự bằng một giá trị mà bạn chỉ định. Và nếu bạn chỉ định một ký tự trống thay vào đó, ký tự bạn muốn xóa sẽ bị xóa mà không cần thay thế

Một điều cần lưu ý khi sử dụng các phương thức này là chuỗi gốc không bị thay đổi vì chuỗi là bất biến. Thay vào đó, cả hai phương thức đều trả về một chuỗi mới đã sửa đổi không chứa các ký tự bạn muốn xóa

Trong bài viết này, bạn sẽ học cách sử dụng cả hai phương pháp để xóa một ký tự hoặc nhiều ký tự khỏi một chuỗi với sự trợ giúp của các ví dụ mã hóa

Đây là những gì chúng tôi sẽ đề cập

Hãy đi sâu vào

Cách xóa một ký tự cụ thể khỏi chuỗi trong Python bằng phương pháp
my_string = "Hi! I! Love! Python!"
0

Cú pháp chung của phương thức

my_string = "Hi! I! Love! Python!"
0 trông tương tự như sau

string.replace[ character, replacement, count]

Hãy phá vỡ nó

  • Bạn nối thêm phương thức
    my_string = "Hi! I! Love! Python!"
    
    0 trên một
    my_string = "Hi! I! Love! Python!"
    
    my_new_string = my_string.replace["!", ""]
    
    print[my_new_string]
    
    # output
    
    # Hi I Love Python
    
    0
  • Phương thức
    my_string = "Hi! I! Love! Python!"
    
    0 chấp nhận ba đối số
    • my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      2 là đối số bắt buộc và đại diện cho ký tự cụ thể mà bạn muốn xóa khỏi
      my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      0
    • my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      4 là một đối số bắt buộc và đại diện cho chuỗi/ký tự mới sẽ thay thế cho
      my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      2
    • my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      6 là một đối số tùy chọn đại diện cho số lần xuất hiện tối đa của
      my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      2 mà bạn muốn xóa khỏi
      my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      0. Nếu bạn không bao gồm
      my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      6, thì theo mặc định, phương thức
      my_string = "Hi! I! Love! Python!"
      
      0 sẽ loại bỏ tất cả các lần xuất hiện của
      my_string = "Hi! I! Love! Python!"
      
      my_new_string = my_string.replace["!", ""]
      
      print[my_new_string]
      
      # output
      
      # Hi I Love Python
      
      2

Phương thức

my_string = "Hi! I! Love! Python!"
0 không sửa đổi chuỗi gốc. Thay vào đó, giá trị trả về của nó là một bản sao của chuỗi gốc không có ký tự bạn muốn xóa

Bây giờ, hãy xem

my_string = "Hi! I! Love! Python!"
0 hoạt động

Giả sử bạn có chuỗi sau và bạn muốn xóa tất cả các dấu chấm than

my_string = "Hi! I! Love! Python!"

Đây là cách bạn sẽ loại bỏ tất cả các lần xuất hiện của ký tự

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4

my_string = "Hi! I! Love! Python!"

my_new_string = my_string.replace["!", ""]

print[my_new_string]

# output

# Hi I Love Python

Trong ví dụ trên, tôi đã thêm phương thức

my_string = "Hi! I! Love! Python!"
0 vào
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
6

Sau đó, tôi lưu trữ kết quả trong một biến mới có tên là

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
7

Hãy nhớ rằng, chuỗi là bất biến. Chuỗi ban đầu không thay đổi -

my_string = "Hi! I! Love! Python!"
0 trả về một chuỗi mới và không sửa đổi chuỗi ban đầu

Tôi đã chỉ định rằng tôi muốn xóa ký tự

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 và cho biết rằng tôi muốn thay thế
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 bằng một ký tự trống

Tôi cũng không sử dụng đối số

my_string = "Hi! I! Love! Python!"

my_new_string = my_string.replace["!", ""]

print[my_new_string]

# output

# Hi I Love Python
6, vì vậy
my_string = "Hi! I! Love! Python!"
0 đã thay thế tất cả các lần xuất hiện của ký tự
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 bằng một ký tự trống

Chuỗi ban đầu được lưu trữ trong một biến

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
6 có bốn lần xuất hiện của ký tự
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4

Nếu tôi chỉ muốn loại bỏ ba lần xuất hiện của ký tự và không phải tất cả chúng, tôi sẽ sử dụng đối số

my_string = "Hi! I! Love! Python!"

my_new_string = my_string.replace["!", ""]

print[my_new_string]

# output

# Hi I Love Python
6 và chuyển một giá trị
my_string = "Hi!? I!? love!? Python!?"

my_new_string = my_string.replace["!",""].replace["?",""]

print[my_new_string]

# output

# Hi I love Python
7 để chỉ định số lần tôi muốn thay thế ký tự

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!

Cách xóa nhiều ký tự khỏi một chuỗi trong Python bằng phương pháp
my_string = "Hi! I! Love! Python!"
0

Có thể sẽ có lúc bạn cần thay thế nhiều ký tự trong một chuỗi

Trong các phần sau, bạn sẽ thấy ba cách bạn có thể đạt được điều này bằng cách sử dụng phương pháp

my_string = "Hi! I! Love! Python!"
0

Xóa nhiều ký tự bằng chuỗi phương thức

Một cách bạn có thể đạt được điều này là xâu chuỗi phương thức

my_string = "Hi! I! Love! Python!"
0 như vậy

my_string = "Hi!? I!? love!? Python!?"

my_new_string = my_string.replace["!",""].replace["?",""]

print[my_new_string]

# output

# Hi I love Python

Điều đó nói rằng, cách loại bỏ các ký tự này có thể khá khó đọc

Xóa nhiều ký tự bằng vòng lặp
my_string = "Hi! I! Love! Python!"
4

Một cách khác để thực hiện điều này là sử dụng phương thức

my_string = "Hi! I! Love! Python!"
0 bên trong vòng lặp
my_string = "Hi! I! Love! Python!"
4

my_string = "Hi!? I!? love!? Python!?"

replacements = [['!', ''], ['?', '']]

for char, replacement in replacements:
    if char in my_string:
        my_string = my_string.replace[char, replacement]

print[my_string]

# output

# Hi I love Python

Đầu tiên, tôi tạo một chuỗi chứa hai ký tự mà tôi muốn xóa,

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 và
my_string = "Hi!? I!? love!? Python!?"

replacements = [['!', ''], ['?', '']]

for char, replacement in replacements:
    if char in my_string:
        my_string = my_string.replace[char, replacement]

print[my_string]

# output

# Hi I love Python
5, rồi lưu trữ nó trong biến
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
6

Tôi đã lưu các ký tự mà tôi muốn thay thế, cùng với các ký tự thay thế của chúng, trong danh sách các bộ có tên

my_string = "Hi!? I!? love!? Python!?"

replacements = [['!', ''], ['?', '']]

for char, replacement in replacements:
    if char in my_string:
        my_string = my_string.replace[char, replacement]

print[my_string]

# output

# Hi I love Python
7 - Tôi muốn thay thế
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 bằng một chuỗi trống và
my_string = "Hi!? I!? love!? Python!?"

replacements = [['!', ''], ['?', '']]

for char, replacement in replacements:
    if char in my_string:
        my_string = my_string.replace[char, replacement]

print[my_string]

# output

# Hi I love Python
5 bằng một chuỗi trống

Sau đó, tôi sử dụng vòng lặp

my_string = "Hi! I! Love! Python!"
4 để lặp qua danh sách các bộ dữ liệu [nếu bạn cần xem lại vòng lặp
my_string = "Hi! I! Love! Python!"
4, hãy đọc bài viết này]

Trong vòng lặp

my_string = "Hi! I! Love! Python!"
4, tôi đã sử dụng toán tử
import re
3 để kiểm tra xem các ký tự có nằm trong chuỗi không. Và nếu có, tôi đã sử dụng phương pháp
my_string = "Hi! I! Love! Python!"
0 để thay thế chúng

Cuối cùng, tôi gán lại biến

Xóa nhiều ký tự bằng biểu thức chính quy

Và một cách khác để thực hiện điều này là sử dụng thư viện biểu thức chính quy

import re
5 và phương thức
import re
6

Trước tiên, bạn cần nhập thư viện

import re

Sau đó, chỉ định nhóm ký tự bạn muốn xóa [trong trường hợp này là ký tự

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 và
my_string = "Hi!? I!? love!? Python!?"

replacements = [['!', ''], ['?', '']]

for char, replacement in replacements:
    if char in my_string:
        my_string = my_string.replace[char, replacement]

print[my_string]

# output

# Hi I love Python
5], cùng với ký tự bạn muốn thay thế chúng bằng. Trong trường hợp này, ký tự thay thế là một ký tự trống

import re

my_string = "Hi!? I!? love!? Python!?"

my_new_string = re.sub['[!?]',"",my_string]

print[my_new_string]

# output

# Hi I love Python

Cách xóa một ký tự cụ thể khỏi chuỗi trong Python bằng phương pháp
my_string = "Hi! I! Love! Python!"
1

Tương tự như phương thức

my_string = "Hi! I! Love! Python!"
0,
my_string = "Hi! I! Love! Python!"
1 xóa các ký tự khỏi chuỗi

Như đã nói, phương pháp

my_string = "Hi! I! Love! Python!"
1 phức tạp hơn một chút và không thân thiện với người mới bắt đầu nhất

Phương thức

my_string = "Hi! I! Love! Python!"
0 là giải pháp đơn giản nhất để sử dụng khi bạn cần xóa các ký tự khỏi chuỗi

Khi sử dụng phương thức

my_string = "Hi! I! Love! Python!"
1 để thay thế một ký tự trong một chuỗi, bạn cần tạo một bảng dịch ký tự, trong đó
my_string = "Hi! I! Love! Python!"
1 sử dụng nội dung của bảng để thay thế các ký tự

Bảng dịch là một từ điển ánh xạ khóa-giá trị và mỗi khóa được thay thế bằng một giá trị

Bạn có thể sử dụng hàm

import re

my_string = "Hi!? I!? love!? Python!?"

my_new_string = re.sub['[!?]',"",my_string]

print[my_new_string]

# output

# Hi I love Python
6 để lấy giá trị Unicode của ký tự rồi ánh xạ giá trị đó sang ký tự khác

Phương thức này trả về một chuỗi mới trong đó mỗi ký tự từ chuỗi cũ được ánh xạ tới một ký tự từ bảng dịch

Giá trị trả về là một chuỗi mới

Hãy xem một ví dụ sử dụng cùng mã từ các phần trước

my_string = "Hi! I! love! Python!"

my_new_string = my_string.translate[ { ord["!"]: None } ]

print[my_new_string]

# output

# Hi I love Python

Trong ví dụ trên, tôi đã sử dụng hàm

import re

my_string = "Hi!? I!? love!? Python!?"

my_new_string = re.sub['[!?]',"",my_string]

print[my_new_string]

# output

# Hi I love Python
6 để trả về giá trị Unicode được liên kết với ký tự mà tôi muốn thay thế, trong trường hợp này là
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4

Sau đó, tôi đã ánh xạ giá trị Unicode đó thành

import re

my_string = "Hi!? I!? love!? Python!?"

my_new_string = re.sub['[!?]',"",my_string]

print[my_new_string]

# output

# Hi I love Python
9 - một từ khác có nghĩa là không có gì hoặc trống rỗng - để đảm bảo loại bỏ nó. Cụ thể, nó đã thay thế mọi phiên bản của ký tự
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 bằng giá trị
import re

my_string = "Hi!? I!? love!? Python!?"

my_new_string = re.sub['[!?]',"",my_string]

print[my_new_string]

# output

# Hi I love Python
9

Cách xóa nhiều ký tự khỏi một chuỗi trong Python bằng phương pháp
my_string = "Hi! I! Love! Python!"
1

Điều gì sẽ xảy ra nếu bạn cần thay thế nhiều ký tự bằng phương thức

my_string = "Hi! I! Love! Python!"
1?

my_string = "Hi!? I!? love!? Python!?"

my_new_string = my_string.translate[ { ord[i]: None for i in '!?'} ]

print[my_new_string]

# output

# Hi I love Python

Trong ví dụ trên, tôi đã thay thế cả hai ký tự

my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
4 và
my_string = "Hi!? I!? love!? Python!?"

replacements = [['!', ''], ['?', '']]

for char, replacement in replacements:
    if char in my_string:
        my_string = my_string.replace[char, replacement]

print[my_string]

# output

# Hi I love Python
5 bằng giá trị
import re

my_string = "Hi!? I!? love!? Python!?"

my_new_string = re.sub['[!?]',"",my_string]

print[my_new_string]

# output

# Hi I love Python
9 bằng cách sử dụng một trình vòng lặp lặp qua các ký tự mà tôi muốn xóa

Phương thức

my_string = "Hi! I! Love! Python!"
1 kiểm tra xem mỗi ký tự trong
my_string = "Hi! I! love! Python!"

my_new_string = my_string.replace["!", "", 3]

print[my_new_string]

# output

# Hi I love Python!
6 có bằng dấu chấm than hay dấu chấm hỏi không. Nếu đúng như vậy, thì nó sẽ được thay thế bằng
import re

my_string = "Hi!? I!? love!? Python!?"

my_new_string = re.sub['[!?]',"",my_string]

print[my_new_string]

# output

# Hi I love Python
9

Phần kết luận

Hy vọng rằng, bài viết này đã giúp bạn hiểu cách xóa các ký tự khỏi một chuỗi trong Python bằng cách sử dụng các phương thức chuỗi

my_string = "Hi! I! Love! Python!"
0 và
my_string = "Hi! I! Love! Python!"
1 tích hợp sẵn

Cảm ơn bạn đã đọc và chúc bạn mã hóa vui vẻ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Dionysia Lemonaki

Học một cái gì đó mới mỗi ngày và viết về nó

Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Làm cách nào để xóa các ký tự khỏi chuỗi trong Python bằng regex?

Sử dụng Python regex[] “Biểu thức chính quy” và sub[] “Chuỗi con” Ở đây chúng tôi đang sử dụng regx[] “Biểu thức chính quy” để tạo mẫu tìm kiếm cho không gian và với sự trợ giúp của mẫu tìm kiếm này, chúng tôi sẽ thay thế

Làm cách nào để xóa các ký tự khỏi chuỗi regex?

Để xóa tất cả các ký tự đặc biệt khỏi một chuỗi, hãy gọi phương thức replace[] trên chuỗi, chuyển biểu thức chính quy danh sách trắng và một chuỗi trống làm đối số, i. e. , str. thay thế[/^a-zA-Z0-9 ]/g, ''] . Phương thức thay thế [] sẽ trả về một chuỗi mới không chứa bất kỳ ký tự đặc biệt nào.

Làm cách nào để xóa văn bản bằng regex?

Cách xóa văn bản trong ngoặc đơn và dấu ngoặc đơn bằng biểu thức chính quy .
Trên tab Dữ liệu Ablebits, trong nhóm Văn bản, bấm vào Công cụ Regex
Trên ngăn Công cụ Regex, chọn chuỗi nguồn của bạn, nhập biểu thức chính quy của bạn, chọn tùy chọn Xóa và nhấn Xóa. Để nhận kết quả dưới dạng công thức, không phải giá trị, hãy chọn hộp kiểm Chèn dưới dạng công thức

Chủ Đề