Loại bỏ ký tự đặc biệt trong chuỗi Python | Laptrinhcanban.com

Loại bỏ ký tự đặc biệt trong chuỗi Python

Hướng dẫn cách loại bỏ ký tự đặc biệt trong chuỗi Python. Bạn sẽ biết cách loại bỏ ký tự đặc biệt trong chuỗi Python cũng như cách lấy ký tự đặc biệt trong chuỗi Python trong python sau bài học này.

Chúng ta có 3 phương pháp để loại bỏ ký tự đặc biệt trong chuỗi Python như sau:

  • Phương thức isalnum() : loại bỏ ký tự đặc biệt trong chuỗi Python
  • Hàm filter(): loại bỏ ký tự đặc biệt trong chuỗi Python
  • Regex trong python - hàm re.sub(): loại bỏ ký tự đặc biệt trong chuỗi Python

Và chúng ta cũng có thể sử dụng regex trong python- hàm re.sub() để lấy ký tự đặc biệt trong chuỗi Python.

Loại bỏ ký tự đặc biệt trong chuỗi Python | Phương thức isalnum()

Để loại bỏ ký tự đặc biệt trong chuỗi Python, chúng ta có thể sử dụng đến phương thức isalnum().

Phương thức isalnum() trong Python vốn được sử dụng để kiểm tra xem tất cả ký tự trong chuỗi có phải là ký tự chữ hoặc số (Alphanumeric) hay không. Nếu như tất cả ký tự trong chuỗi là ký tự chữ hoặc số, thì kết quả True sẽ được trả về và ngược lại thì False sẽ được trả về.

Do ký tự đặc biệt trong chuỗi Python không thuộc kiểu ký tự chữ hoặc số, do đó chúng ta có thể ứng dụng phương thức isalnum() để kiểm tra từng ký tự trong chuỗi chỉ định có phải là ký tự đặc biệt, hay chỉ là ký tự bình thường mà thôi.

Sau đó, để loại bỏ ký tự đặc biệt trong chuỗi Python, chúng ta đơn giản chỉ lấy các ký tự bình thường trong chuỗi ban đầu và bỏ lại các ký tự đặc biệt, sau đó tạo ra một chuỗi mới chỉ chứa ký tự bình thường là xong.

Để làm được điều đó, chúng ta sẽ dùng vòng lặp for trong python để lấy và kiểm tra từng ký tự trong chuỗi ban đầu, và dùng phương thức join() để nối các ký tự kết quả để tạo ra chuỗi mới.

Ví dụ cụ thể, chúng ta xóa khoảng trắng trong chuỗi Python cũng như các ký tự đặc biệt khác như các dấu !'? trong chuỗi như sau:

string = "Hey! What's up bro?"
new_string=''
for char in string:
if (char.isalnum() == True)
new_string.append(char)
print(new_string)
#>> HeyWhatsupbro

Nếu bạn đã biết cách sử dụng list comprehension thì còn đơn giản hơn nữa, chúng ta sử dụng 1 dòng code ngắn gọn sau đây để loại bỏ ký tự đặc biệt trong chuỗi Python.

string = "Hey! What's up bro?"

new_string = ''.join(char for char in string if char.isalnum())
print(new_string)
#>> HeyWhatsupbro

Loại bỏ ký tự đặc biệt trong chuỗi Python | Hàm filter()

Tương tự như phương pháp ở trên, chúng ta cũng có thể sử dụng phương thức filter() để loại bỏ ký tự đặc biệt trong chuỗi Python. Điều khác biệt ở đây là thay vì sử dụng vòng lặp for để lấy ra các ký tự bình thường trong chuỗi và loại bỏ các ký tự đặc biệt, thì chúng ta sẽ sử dụng hàm filter() trong Python.

Ví dụ cụ thể:

string = "Hey! What's up bro?"

new_string = ''.join(filter(str.isalnum, string))
print(new_string)
#>> HeyWhatsupbro

Loại bỏ ký tự đặc biệt trong chuỗi Python | RegEx trong python - hàm re.sub()

Chúng ta cũng có thể sử dụng RegEx với hàm re.sub() trong Python để loại bỏ ký tự đặc biệt trong chuỗi Python.

Hàm re.sub() trong Python vốn được sử dụng để tìm một chuỗi ký tự có định dạng chỉ định và thay thế chuỗi đó bằng một chuỗi khác. Ứng dụng re.sub(), chúng ta có thể tìm ra tất cả các ký tự đặc biệt trong chuỗi, sau đó xóa hết chúng đi. Kết quả sẽ chỉ còn các ký tự bình thường sẽ ở lại trong chuỗi mà thôi.

Tuy nhiên trong Python không có một mẫu RegEx nào để miêu tả các ký tự đặc biệt cả, mà chỉ có mẫu RegEx để miêu tả các ký tự bình thường ( bao gồm các số và các ký tự Alphabet) như dưới đây mà thôi.

[a-zA-Z0-9]

Tuy nhiên bằng cách dùng thêm ký tự ^ vào trước mẫu RegEx miêu tả các ký tự bình thường, chúng ta có thể biểu diễn các ký tự đặc biệt trong Python như sau:

[^a-zA-Z0-9]

Ứng dụng hàm re.sub(), chúng ta có thể loại bỏ ký tự đặc biệt trong chuỗi Python như ví dụ cụ thể sau đây:

import re

string = "Hey! What's up bro?"
new_string = re.sub(r"[^a-zA-Z0-9]","",string)
print(new_string)
#>> HeyWhatsupbro

Lấy ký tự đặc biệt trong chuỗi Python | RegEx trong python - hàm re.sub()

Tương tự như khi loại bỏ ký tự trong chuỗi Python, chúng ta cũng có thể sử dụng RegEx trong python với hàm re.sub() để lấy ký tự đặc biệt trong chuỗi python.

Ở phần trên chúng ta đã biết các ký tự bình thường ( bao gồm các số và các ký tự Alphabet) trong Python được miêu tả bởi mẫu RegEx như sau:

[a-zA-Z0-9]

Ứng dụng hàm re.sub(), chúng ta có thể loại bỏ các ký tự bình thường trong chuỗi và chỉ để lại các ký tự đặc biệt, và qua đó có thể hoàn thành việc lấy ký tự đặc biệt trong chuỗi python rồi.

Ví dụ cụ thể, chúng ta lấy các ký tự đặc biệt như dấu cách, và các dấu !'? từ trong chuỗi ban đầu như sau:

import re

string = "Hey! What's up bro?"
new_string = re.sub(r"[a-zA-Z0-9]","",string)
print(new_string)
#>> ! ' ?

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách loại bỏ ký tự đặc biệt trong chuỗi Python cũng như cách lấy ký tự đặc biệt trong chuỗi Python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.