Trong hướng dẫn này, chúng tôi sẽ xem xét cách loại bỏ các ký tự không phải là số đồng âm khỏi một chuỗi trong Python với sự trợ giúp của một số ví dụ.
Các ký tự chữ và số là gì?
Một ký tự là một ký tự chữ và số nếu nó có một bảng chữ cái [A đến Z, A đến Z] hoặc một chữ số [0 đến 9]. Ví dụ: chuỗi
True True True False False5 chỉ chứa các ký tự chữ và số trong khi chuỗi
True True True False False6 chứa một ký tự không phải là số đồng âm [
True True True False False7].
Bạn có thể sử dụng chức năng chuỗi
True True True False False8 để kiểm tra xem ký tự có phải là ký tự chữ và số hay không.
# check if character is alphanumeric print['a'.isalnum[]] print['A'.isalnum[]] print['7'.isalnum[]] print['_'.isalnum[]] print['#'.isalnum[]]
Output:
True True True False False
Việc loại bỏ các ký tự không chữ và số khỏi chuỗi thường được sử dụng làm bước tiền xử lý văn bản. Bây giờ, hãy nhìn vào cách loại bỏ các ký tự không phải là chữ và số khỏi chuỗi với sự trợ giúp của một số ví dụ.
Có một số cách bạn có thể xóa các ký tự không phải là chữ và số khỏi một chuỗi trong Python.
Sử dụng Chuỗi True
True
True
False
False
8 và Chuỗi # string with non alphanumeric characters
s = "[email protected]#$_123"
# remove non alphanuemeric characters
new_s = ''.join[c for c in s if c.isalnum[]]
print[new_s]
0 Chức năng
Bạn có thể sử dụng chức năng Chuỗi
True True True False False8 cùng với chức năng chuỗi
# string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = ''.join[c for c in s if c.isalnum[]] print[new_s]0 để tạo một chuỗi chỉ có các ký tự chữ và số.
# string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = ''.join[c for c in s if c.isalnum[]] print[new_s]
Output:
Striker123
Bạn có thể thấy rằng chuỗi kết quả không có bất kỳ ký tự chữ và chữ số nào. Ở đây, chúng tôi lặp lại tất cả các ký tự trong chuỗi gốc và chỉ giữ nó nếu nó là một ký tự chữ và số mà chúng tôi kiểm tra bằng cách sử dụng hàm
True True True False False8. Sau đó, chúng tôi sử dụng chức năng chuỗi
# string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = ''.join[c for c in s if c.isalnum[]] print[new_s]0 để kết hợp từng ký tự.
Sử dụng biểu thức chính quy để xóa các ký tự không chữ ký
Chúng ta cũng có thể sử dụng các biểu thức thông thường để loại bỏ các ký tự như vậy. Ví dụ: chúng ta có thể viết một biểu thức thông thường để khớp với tất cả các ký tự không phải là ký tự trong chuỗi và sau đó thay thế chúng bằng một chuỗi trống. Bạn có thể sử dụng thư viện
# string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = ''.join[c for c in s if c.isalnum[]] print[new_s]5 trong Python để thực hiện khớp mẫu biểu thức chính quy.
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]
Output:
Striker123
Chúng tôi nhận được kết quả tương tự như trên.
Để biết thêm về các biểu thức thường xuyên trong Python, hãy tham khảo hướng dẫn này.
Bạn cũng có thể quan tâm đến -
- Xóa ký tự đầu tiên khỏi chuỗi trong Python
- Xóa ký tự cuối cùng khỏi chuỗi trong Python
Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do
not spam and you can opt out any time.
Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.
Xem tất cả các bài viết
Xóa các ký tự không phải là vô hiệu khỏi chuỗi python #
Sử dụng phương thức # string with non alphanumeric characters
s = "[email protected]#$_123"
# remove non alphanuemeric characters
new_s = ''.join[c for c in s if c.isalnum[]]
print[new_s]
6 để loại bỏ tất cả các ký tự không phải là ký tự vô hiệu khỏi chuỗi, ví dụ: # string with non alphanumeric characters
s = "[email protected]#$_123"
# remove non alphanuemeric characters
new_s = ''.join[c for c in s if c.isalnum[]]
print[new_s]
7. Phương pháp # string with non alphanumeric characters
s = "[email protected]#$_123"
# remove non alphanuemeric characters
new_s = ''.join[c for c in s if c.isalnum[]]
print[new_s]
6 sẽ loại bỏ tất cả các ký tự không phải là số đồngumeric khỏi chuỗi bằng cách thay thế chúng bằng các chuỗi trống.
Copied!
import re my_str = 'one !two@ three' # ✅ Remove all non-alphanumeric characters from string [re.sub[]] new_str = re.sub[r'[\W_]', '', my_str] print[new_str] # 👉️ 'onetwothree' # ✅ Remove all non-alphanumeric characters from string, preserving whitespace new_str = re.sub[r'[^\w\s]', '', my_str] print[new_str] # 👉️ 'one two three' # -------------------------------- # ✅ Remove all non-alphanumeric characters from string [generator expression] new_str = ''.join[char for char in my_str if char.isalnum[]] print[new_str] # 👉️ 'onetwothree' # ✅ Remove all non-alphanumeric characters from string, preserving whitespace new_str = ''.join[char for char in my_str if char.isalnum[] or char == ' '] print[new_str] # 👉️ 'one two three'
Ví dụ đầu tiên sử dụng phương thức
# string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = ''.join[c for c in s if c.isalnum[]] print[new_s]6 để loại bỏ tất cả các ký tự không phải là một chuỗi.
Phương thức Re.sub trả về một chuỗi mới thu được bằng cách thay thế các lần xuất hiện của mẫu bằng thay thế được cung cấp.
Copied!
import re my_str = 'one !two@ three' new_str = re.sub[r'[\W_]', '', my_str] print[new_str] # 👉️ 'onetwothree' new_str = re.sub[r'[^\w\s]', '', my_str] print[new_str] # 👉️ 'one two three'
Nếu mẫu không được tìm thấy, chuỗi được trả về như vậy.
Đối số đầu tiên chúng tôi đã chuyển sang phương pháp
# string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = ''.join[c for c in s if c.isalnum[]] print[new_s]6 là một biểu thức chính quy.
Các dấu ngoặc vuông
Striker1231 được sử dụng để chỉ ra một tập hợp các ký tự.
Nhân vật đặc biệt
Striker1232 [Capital
Striker1233] phù hợp với bất kỳ ký tự nào không phải là ký tự từ.
Chúng tôi loại bỏ tất cả các ký tự không phải là đa số bằng cách thay thế mỗi ký tự bằng một chuỗi trống.
Nếu bạn muốn bảo quản khoảng trắng và loại bỏ tất cả các ký tự không phải là ký tự vô sinh, hãy sử dụng biểu thức chính quy sau.
Copied!
import re my_str = 'one !two@ three' new_str = re.sub[r'[^\w\s]', '', my_str] print[new_str] # 👉️ 'one two three'
CARET Striker123
4 ở đầu tập hợp có nghĩa là "không". Nói cách khác, khớp với tất cả các ký tự không phải là ký tự từ, số, dấu gạch dưới hoặc không gian.
Ký tự
Striker1235 trái ngược với ký tự
Striker1232 và phù hợp:
- ký tự có thể là một phần của một từ trong bất kỳ ngôn ngữ nào
- số
- nhân vật dấu gạch dưới
Nhân vật
Striker1237 phù hợp với các ký tự khoảng trắng unicode như
Striker1238.
Nếu bạn cần trợ giúp đọc hoặc viết một biểu thức chính quy, hãy tham khảo ý kiến phân nhóm cú pháp biểu thức thông thường trong các tài liệu chính thức.
Trang chứa một danh sách tất cả các ký tự đặc biệt với nhiều ví dụ hữu ích.
Nếu chuỗi của bạn có nhiều khoảng trống cạnh nhau, bạn có thể phải thay thế nhiều không gian liên tiếp bằng một không gian.
Copied!
import re my_str = 'one !two@ three' new_str = re.sub[r'[^\w\s]', '', my_str] print[new_str] # 👉️ 'one two three' result = " ".join[new_str.split[]] print[result] # 👉️ 'one two three'
Phương thức Striker123
9 chia chuỗi trên một hoặc nhiều ký tự khoảng trắng và chúng tôi tham gia danh sách các chuỗi với một bộ phân cách không gian duy nhất.
Ngoài ra, bạn có thể sử dụng một biểu thức máy phát.
Để xóa tất cả các ký tự chữ và số khỏi chuỗi:
- Sử dụng biểu thức máy phát để lặp qua chuỗi.
- Sử dụng phương pháp
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]
0 để kiểm tra xem mỗi ký tự là chữ và số. - Sử dụng phương thức
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]
1 để tham gia các ký tự chữ và số.
True True True False False0
Chúng tôi đã sử dụng một biểu thức máy phát để lặp qua chuỗi.
Biểu thức của máy phát được sử dụng để thực hiện một số hoạt động cho mọi phần tử hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.
Trên mỗi lần lặp, chúng tôi sử dụng phương thức
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]0 để kiểm tra xem ký tự hiện tại có phải là chữ và số và chúng tôi trả về kết quả không.
Phương thức str.Alnum trả về
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]3 Nếu tất cả các ký tự trong chuỗi là chữ và số và chuỗi chứa ít nhất một ký tự, nếu không phương thức trả về
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]4.
True True True False False1
Đối tượng Trình tạo chỉ chứa các ký tự chữ và số.
Bước cuối cùng là sử dụng phương thức
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]1 để tham gia các ký tự chữ và số vào một chuỗi.
True True True False False2
Phương thức str.join lấy một điều đáng tin cậy như một đối số và trả về một chuỗi là sự kết hợp của các chuỗi trong điều kiện có thể sử dụng được.
Chuỗi phương thức được gọi là bật được sử dụng làm phân tách giữa các phần tử.
Đối với mục đích của chúng tôi, chúng tôi gọi phương thức # string with non alphanumeric characters
s = "[email protected]#$_123"
# remove non alphanuemeric characters
new_s = ''.join[c for c in s if c.isalnum[]]
print[new_s]
0 trên một chuỗi trống để tham gia các ký tự chữ và số mà không có dấu phân cách.
Nếu bạn muốn loại bỏ các ký tự không phải là vô hiệu và bảo quản khoảng trắng, hãy sử dụng toán tử boolean
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]7.
True True True False False3
Chúng tôi đã sử dụng toán tử boolean
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]7, vì vậy để ký tự được thêm vào đối tượng máy phát, một trong các điều kiện phải được đáp ứng.
Nhân vật phải là chữ và số hoặc nó phải là một không gian.
Nếu chuỗi của bạn chứa nhiều khoảng trống bên cạnh nhau, bạn có thể phải thay thế một hoặc nhiều khoảng trống bằng một khoảng trống.
True True True False False4