Hướng dẫn python remove non alphanumeric - python loại bỏ chữ và số

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
False
5 chỉ chứa các ký tự chữ và số trong khi chuỗi
True
True
True
False
False
6 chứa một ký tự không phải là số đồng âm (
True
True
True
False
False
7).

Hướng dẫn python remove non alphanumeric - python loại bỏ chữ và số

Bạn có thể sử dụng chức năng chuỗi

True
True
True
False
False
8 để 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 False8 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
False
8 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
False
8. 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

Striker123
1 được sử dụng để chỉ ra một tập hợp các ký tự.

Nhân vật đặc biệt

Striker123
2 (Capital
Striker123
3) 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ự

Striker123
5 trái ngược với ký tự
Striker123
2 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

Striker123
7 phù hợp với các ký tự khoảng trắng unicode như
Striker123
8.

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:

  1. Sử dụng biểu thức máy phát để lặp qua chuỗi.
  2. 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ố.
  3. 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
False
0

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
False
1

Đố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
False
2

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
False
3

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
False
4