Làm thế nào để bạn thay thế một ký tự đặc biệt trong python?

Chúng tôi đang sử dụng phương thức nối () để xóa các ký tự đặc biệt. Trong hàm tạo, chúng tôi chỉ định logic để bỏ qua các ký tự trong special_char và do đó xây dựng một chuỗi mới không có ký tự đặc biệt

# Python program to remove all special characters from string

# take string
string = input('Enter any string: ')

# initializing special characters
special_char = '@_!#$%^&*()<>?/\|}{~:;[]'
 
# using join() + generator to remove special characters
new_string = ''.join(x for x in string if not x in special_char)
 
# print string without special characters
print('New string:', new_string)

đầu ra. -

Nhập chuỗi bất kỳ. tham gia(special_char)
Chuỗi mới. tham giachar đặc biệt

Chuỗi sạch Python từ các ký tự đặc biệt

Trong chương trình trước, chúng ta đã sử dụng phương thức join() nhưng trong chương trình này, chúng ta đang sử dụng hàm join(), filter() và lambda() để xóa tất cả các ký tự đặc biệt khỏi một chuỗi. Phương thức filter() xây dựng một iterator từ các phần tử của iterable mà hàm trả về true

# Python program to remove all special characters from string

# take string
string = input('Enter any string: ')

# initializing special characters
special_char = '@_!#$%^&*()<>?/\|}{~:;[]'
 
# using filter() to remove special characters
new_string = ''.join((filter(lambda i: i not in special_char, string)))

# print string without special characters
print('New string:', new_string)

đầu ra. -

Nhập chuỗi bất kỳ. tham gia (bộ lọc (lambda. )
Chuỗi mới. tham gia bộ lọclambda

Python thay thế các ký tự đặc biệt

Chương trình python này cũng thực hiện nhiệm vụ tương tự nhưng theo những cách khác nhau. Trong chương trình này, chúng tôi cũng đang sử dụng str. hàm isalnum(). các str. Phương thức isalnum() trả về True nếu các ký tự là ký tự chữ và số, nghĩa là không có ký tự đặc biệt nào trong chuỗi. Nó sẽ trả về Sai nếu có bất kỳ ký tự đặc biệt nào trong chuỗi

# Python program to remove all special characters from string

# take string
string = input('Enter any string: ')
 
# using str.isalnum() function to remove special characters
new_string = ''.join(filter(str.isalnum, string))

# print string without special characters
print('New string:', new_string)

đầu ra. -

Nhập chuỗi bất kỳ. tham gia (bộ lọc (str. isalnum, string))
Chuỗi mới. tham giafilterstrisalnumstring

Xóa tất cả các ký tự đặc biệt khỏi chuỗi Python

Phương thức translate() trả về một chuỗi trong đó một số ký tự được chỉ định được thay thế bằng ký tự được mô tả trong từ điển hoặc trong bảng ánh xạ. Sử dụng phương thức maketrans() để tạo bảng ánh xạ. Nếu một ký tự không được chỉ định trong từ điển/bảng, ký tự đó sẽ không được thay thế. Chúng tôi có thể dịch từng special_char thành một chuỗi rỗng và nhận được một chuỗi đã lọc

# Python program to remove all special characters from string

# importing string function
import string

# take string
test_string = input('Enter any string: ')
 
# using translate() to remove special characters
new_string = test_string.translate(str.maketrans('', '', string.punctuation))

# print string without special characters
print('New string:', new_string)

đầu ra. -

Nhập chuỗi bất kỳ. #sợi dây. translate()
Chuỗi mới. dịch chuỗi

Cũng thấy. - Kiểm tra xem Chuỗi có bắt đầu bằng Nguyên âm không

Nếu bạn thích bài đăng này, hãy chia sẻ nó với bạn bè của bạn. Bạn có muốn chia sẻ thêm thông tin về chủ đề đã thảo luận ở trên hay bạn có thấy điều gì không đúng không? . Cảm ơn bạn

Trong hướng dẫn này, chúng ta sẽ giải một chương trình về cách xóa các ký tự đặc biệt khỏi chuỗi Python.  

Mục lục

  • Cách xóa các ký tự đặc biệt khỏi String Python (Bao gồm khoảng trắng)
    • Cách 1 – Sử dụng phương thức isalmun()
    • Cách 2 – Sử dụng phương thức replace()​
    • Cách 3 – Sử dụng filter()
    • Cách 4 – Sử dụng hàm nối + trình tạo
  • Cách xóa các ký tự đặc biệt khỏi Chuỗi Python Ngoại trừ Dấu cách
    • Phương pháp 1 – Sử dụng isalnum()
    • Phương pháp 2 – Sử dụng Biểu thức Regex
  • Sự kết luận

Cách xóa các ký tự đặc biệt khỏi String Python (Bao gồm khoảng trắng)

Chúng ta sẽ giải bài toán trên theo 4 cách khác nhau

Cách 1 – Sử dụng phương thức isalmun()

Python isalnum() trả về True nếu tất cả các ký tự trong chuỗi là chữ và số. Ký tự chữ và số nghĩa là ký tự có thể là bảng chữ cái (a-z) hoặc có thể là số (0-9). Và nó trả về false nếu một chuỗi chứa ký tự không phải chữ và số, chẳng hạn như @,. , #, $, %, &, dấu cách, v.v.

Thí dụ

s = "TheProblemSeeker10"
print(s.isalnum())

đầu ra. ĐÚNG VẬY

Bởi vì chuỗi 's' không chứa bất kỳ giá trị nào không phải chữ và số

Các bước xóa ký tự đặc biệt khỏi String Python

  1. Lấy đầu vào từ người dùng hoặc xác định chuỗi mà bạn muốn xóa các ký tự đặc biệt
  2. Xác định một chuỗi rỗng mới có tên là “Final_string” để lưu trữ các ký tự chữ và số
  3. Áp dụng cho vòng lặp để truy cập từng ký tự trong chuỗi và kiểm tra ký tự là chữ và số bằng cách sử dụng phương thức isalnum()
  4. Nếu ký tự là chữ và số, hãy nối ký tự đó với chuỗi mới “Final_string”
  5. Kết thúc vòng lặp

Mã Python

#define input string
input_string = "The Problem [email protected]"
final_string = "" #define string for ouput
for character in input_string:
    if(character.isalnum()):
        # if character is alphanumeric concat to final_string
        final_string = final_string + character
print("Sample String:", input_string)
print("Final String:", final_string)

đầu ra

Original String: The Problem [email protected]
Final String: TheProblemSeeker10

Cách 2 – Sử dụng phương thức replace()​

Cách tiếp cận của phương pháp này là tìm các ký tự đặc biệt bằng cách sử dụng vòng lặp và thay thế chúng bằng một chuỗi trống

Mã Python

#define input string
sample_string = "The Problem [email protected]"

#define special characters list
special_characters = ['!','#','$','%', '&','@','[',']',' ',']','_']

#print input sample string 
print("Original String:", sample_string)

#using for loop and replace to remove special characters
for i in special_characters:
    sample_string = sample_string.replace(i,'')
    
# print final sample string    
print("Final String:",sample_string)

đầu ra

Original String: The Problem [email protected]
Final String: TheProblemSeeker10

Cách 3 – Sử dụng filter()

Một cách khác để xóa các ký tự đặc biệt khỏi chuỗi là sử dụng hàm lọc và hàm lambda.  

Mã Python

#define input string
sample_string = "The Problem [email protected]"

#define special characters list
special_characters = ['!','#','$','%', '&','@','[',']',' ',']','_']

#print input sample string 
print("Original String:", sample_string)

# lambda and join function
sample_string = ''.join(filter(lambda i:i not in special_characters, sample_string))
    
# print final sample string    
print("Final String:",sample_string)

đầu ra

Original String: The Problem [email protected]
Final String: TheProblemSeeker10

Cách 4 – Sử dụng hàm nối + trình tạo

Trong hàm tạo, chúng tôi chỉ định logic sẽ giúp chúng tôi bỏ qua các ký tự đặc biệt từ chuỗi và sau đó chúng tôi tạo lại chuỗi bằng phương thức nối ()

Mã Python

#define input string
sample_string = "The Problem [email protected]"

#define special characters list
special_characters = ['!','#','$','%', '&','@','[',']',' ',']','_']

#print input sample string 
print("Original String:", sample_string)

# lambda and join function
sample_string = ''.join(filter(lambda i:i not in special_characters, sample_string))
    
# print final sample string    
print("Final String:",sample_string)

đầu ra

Original String: The Problem [email protected]
Final String: TheProblemSeeker10

Cách xóa các ký tự đặc biệt khỏi Chuỗi Python Ngoại trừ Dấu cách

Đôi khi chúng ta cần khoảng trắng trong chuỗi nhưng không cần các ký tự đặc biệt, chúng ta có thể làm điều đó bằng các phương pháp sau

Phương pháp 1 – Sử dụng isalnum()

Ở đây chúng ta cũng sẽ sử dụng isalnum() nhưng trong trường hợp này, chúng ta sẽ kiểm tra ký tự khoảng trắng và nối nó với chuỗi cuối cùng

Các bước để xóa các ký tự đặc biệt khỏi Chuỗi Python Ngoại trừ Dấu cách là

  1. Lấy đầu vào từ người dùng hoặc xác định chuỗi mà bạn muốn xóa các ký tự đặc biệt
  2. Xác định một chuỗi rỗng mới có tên là “Final_string” để lưu trữ các ký tự chữ và số
  3. Áp dụng cho vòng lặp để truy cập từng ký tự trong chuỗi và kiểm tra xem ký tự đó có phải là dấu cách hay không
  4. Nếu ký tự là khoảng trắng, hãy nối ký tự đó với “Final_string”
  5. Nếu không phải là dấu cách thì hãy kiểm tra ký tự có phải là chữ và số bằng cách sử dụng phương thức isalnum()
  6. Nếu ký tự là chữ và số, hãy nối ký tự đó với chuỗi mới “Final_string”
  7. Kết thúc vòng lặp For

Mã Python

# Python program to remove all special characters from string

# take string
string = input('Enter any string: ')

# initializing special characters
special_char = '@_!#$%^&*()<>?/\|}{~:;[]'
 
# using filter() to remove special characters
new_string = ''.join((filter(lambda i: i not in special_char, string)))

# print string without special characters
print('New string:', new_string)
3

đầu ra

#define input string
input_string = "The Problem [email protected]"
final_string = "" #define string for ouput
for character in input_string:
    if(character.isalnum()):
        # if character is alphanumeric concat to final_string
        final_string = final_string + character
print("Sample String:", input_string)
print("Final String:", final_string)
0

Phương pháp 2 – Sử dụng Biểu thức Regex

Để xóa tất cả các ký tự đặc biệt khỏi chuỗi, chúng ta có thể áp dụng quy tắc bằng biểu thức regex. Để loại bỏ các ký tự đặc biệt khỏi biểu thức regex chuỗi có thể được định nghĩa là [^A-Za-z0-9]+.  

Để biết thêm về biểu thức chính quy (regex expression) bạn đọc tại đây

Mã Python

#define input string
input_string = "The Problem [email protected]"
final_string = "" #define string for ouput
for character in input_string:
    if(character.isalnum()):
        # if character is alphanumeric concat to final_string
        final_string = final_string + character
print("Sample String:", input_string)
print("Final String:", final_string)
1

đầu ra

#define input string
input_string = "The Problem [email protected]"
final_string = "" #define string for ouput
for character in input_string:
    if(character.isalnum()):
        # if character is alphanumeric concat to final_string
        final_string = final_string + character
print("Sample String:", input_string)
print("Final String:", final_string)
2

Sự kết luận

Theo cách này, bằng cách sử dụng các phương thức isalnum(), replace(), chúng ta có thể xóa các ký tự đặc biệt khỏi chuỗi python bao gồm cả khoảng trắng

Chúng ta cũng đã thấy cách loại bỏ các ký tự đặc biệt trong python ngoại trừ khoảng trắng bằng cách sử dụng biểu thức regex và phương thức isalnum()