Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

373

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi cần xóa tất cả các ký tự đặc biệt, dấu câu và khoảng trống từ một chuỗi để tôi chỉ có chữ cái và số.

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Công ty JSC

63.4K13 Huy hiệu vàng150 Huy hiệu bạc193 Huy hiệu Đồng13 gold badges150 silver badges193 bronze badges

Hỏi ngày 30 tháng 4 năm 2011 lúc 17:41Apr 30, 2011 at 17:41

Điều này có thể được thực hiện mà không cần Regex:

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'

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

[^A-Za-z0-9]+
9:

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.

Nếu bạn khăng khăng sử dụng Regex, các giải pháp khác sẽ làm tốt. Tuy nhiên, lưu ý rằng nếu nó có thể được thực hiện mà không cần sử dụng một biểu thức thông thường, đó là cách tốt nhất để đi về nó.

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

wjandrea

25K8 Huy hiệu vàng53 Huy hiệu bạc73 Huy hiệu đồng8 gold badges53 silver badges73 bronze badges

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 17:47Apr 30, 2011 at 17:47

user225312user225312user225312

121K66 Huy hiệu vàng167 Huy hiệu bạc181 Huy hiệu Đồng66 gold badges167 silver badges181 bronze badges

6

Dưới đây là một regex để khớp một chuỗi các ký tự không phải là chữ cái hoặc số:

[^A-Za-z0-9]+

Đây là lệnh Python để thay thế Regex:

re.sub('[^A-Za-z0-9]+', '', mystring)

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

wjandrea

25K8 Huy hiệu vàng53 Huy hiệu bạc73 Huy hiệu đồng8 gold badges53 silver badges73 bronze badges

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 17:47Apr 30, 2011 at 17:46

121K66 Huy hiệu vàng167 Huy hiệu bạc181 Huy hiệu ĐồngAndy White

Dưới đây là một regex để khớp một chuỗi các ký tự không phải là chữ cái hoặc số:47 gold badges173 silver badges208 bronze badges

9

Đây là lệnh Python để thay thế Regex:

import re
cleanString = re.sub('\W+','', string )

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 17:46

Andy Whiteeandy WhiteAug 7, 2014 at 13:26

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

85.1K47 Huy hiệu vàng173 Huy hiệu bạc208 Huy hiệu đồngtuxErrante

Cách ngắn hơn:10 silver badges18 bronze badges

6

Nếu bạn muốn khoảng trống giữa các từ và số thay thế '' bằng ''

Đã trả lời ngày 7 tháng 8 năm 2014 lúc 13:26

import re
re.sub('\W+','', string)

tuxerrantetuxerrante3x faster than the next fastest provided top answer.

1.18410 Huy hiệu bạc18 Huy hiệu đồngø) may not be striped using this method.


TLDR

  • re.sub('[^A-Za-z0-9]+', '', mystring)
    
    1
  • re.sub('[^A-Za-z0-9]+', '', mystring)
    
    2

Tôi đã tính thời gian các câu trả lời được cung cấp.

'.join(e for e in string if e.isalnum())
  • thường nhanh hơn 3 lần so với câu trả lời hàng đầu được cung cấp nhanh nhất tiếp theo.
  • Cần thận trọng khi sử dụng tùy chọn này. Một số ký tự đặc biệt (ví dụ: Ø) không được sọc bằng phương pháp này.

Sau khi thấy điều này, tôi đã quan tâm đến việc mở rộng các câu trả lời được cung cấp bằng cách tìm ra cách thực hiện trong khoảng thời gian ít nhất, vì vậy tôi đã đi qua và kiểm tra một số câu trả lời được đề xuất với re.sub('[^A-Za-z0-9]+', '', mystring) 0 so với hai trong số các chuỗi ví dụ:

import re
re.sub('[^A-Za-z0-9]+', '', string)
  • ví dụ 1
  • re.sub('[^A-Za-z0-9]+', '', mystring)
    
    3 - Kết quả: 10.7061979771

re.sub('[^A-Za-z0-9]+', '', mystring) 4 - Kết quả: 7.78372597694

import re
re.sub('\W+','', string)
  • Ví dụ 2
  • re.sub('[^A-Za-z0-9]+', '', mystring)
    
    3 - Kết quả: 7.10785102844

re.sub('[^A-Za-z0-9]+', '', mystring)
4 - Kết quả: 4.12814903259

Ví dụ 3 can be 3x faster than Example 1.

re.sub('[^A-Za-z0-9]+', '', mystring)
3 - Kết quả: 3.11899876595Aug 6, 2016 at 1:04

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

re.sub('[^A-Za-z0-9]+', '', mystring)
4 - Kết quả: 2.78014397621mbeacom

Các kết quả trên là một sản phẩm của kết quả trả lại thấp nhất từ ​​trung bình là:

re.sub('[^A-Za-z0-9]+', '', mystring)
914 silver badges25 bronze badges

7

Ví dụ 3 có thể nhanh hơn 3 lần so với ví dụ 1.

Đã trả lời ngày 6 tháng 8 năm 2016 lúc 1:04

In [20]: filter(str.isalnum, 'string with special chars like !,#$% etcs.')
Out[20]: 'stringwithspecialcharslikeetcs'

MBeacommbeaCom

1.35814 Huy hiệu bạc25 Huy hiệu đồng

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
0

Python 2.*

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
1

Tôi nghĩ chỉ

import re
cleanString = re.sub('\W+','', string )
0 hoạt động

Python 3.*Apr 14, 2016 at 9:32

Trong Python3, hàm

import re
cleanString = re.sub('\W+','', string )
1 sẽ trả về một đối tượng có thể điều chỉnh được (thay vì chuỗi không giống như ở trên). Người ta phải tham gia lại để lấy một chuỗi từ ITERTABLE:Grijesh Chauhan

hoặc để vượt qua

import re
cleanString = re.sub('\W+','', string )
2 khi sử dụng tham gia (không chắc chắn nhưng có thể nhanh chóng một chút)19 gold badges135 silver badges201 bronze badges

4

Lưu ý: Giải nén trong

import re
cleanString = re.sub('\W+','', string )
3 có giá trị từ Python> = 3.5

Đã trả lời ngày 14 tháng 4 năm 2016 lúc 9:32

Grijesh Chauhangrijesh ChauhanMay 25, 2014 at 9:28

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

55,8K19 Huy hiệu vàng135 Huy hiệu bạc201 Huy hiệu đồngpkm

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
21 gold badge27 silver badges44 bronze badges

0

Bạn có thể thêm nhiều ký tự đặc biệt hơn và điều đó sẽ được thay thế bằng '' có nghĩa là không có gì tức là chúng sẽ bị xóa.is not what I want, instead of enumerating explicitly what I don't want.

Đã trả lời ngày 25 tháng 5 năm 2014 lúc 9:28

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
3

PKMPKM

2.6251 Huy hiệu vàng27 Huy hiệu bạc44 Huy hiệu đồng

Khác với những người khác đã sử dụng Regex, tôi sẽ cố gắng loại trừ mọi nhân vật không phải là điều tôi muốn, thay vì liệt kê rõ ràng những gì tôi không muốn.lowercase the result, you can make the regex even faster and easier, as long as you won't find any uppercase now.

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
4

Ví dụ: nếu tôi chỉ muốn các ký tự từ 'A đến Z' (chữ hoa và chữ thường) và số, tôi sẽ loại trừ mọi thứ khác:Sep 5, 2018 at 10:02

Điều này có nghĩa là "thay thế mọi ký tự không phải là một số hoặc một ký tự trong phạm vi 'A đến Z' hoặc 'A đến Z' bằng một chuỗi trống".Andrea

Trên thực tế, nếu bạn chèn ký tự đặc biệt

import re
cleanString = re.sub('\W+','', string )
4 ở nơi đầu tiên của Regex, bạn sẽ nhận được sự phủ định.4 gold badges34 silver badges54 bronze badges

Mẹo bổ sung: Nếu bạn cũng cần viết thường kết quả, bạn có thể làm cho regex thậm chí nhanh hơn và dễ dàng hơn, miễn là bạn sẽ không tìm thấy bất kỳ chữ hoa nào bây giờ.

Đã trả lời ngày 5 tháng 9 năm 2018 lúc 10:02

Andreaandrea

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
5

Output:

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
6

4.0504 Huy hiệu vàng34 Huy hiệu bạc54 Huy hiệu đồngMar 17, 2020 at 15:14

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Chuỗi.Punction chứa các ký tự sau:Vlad Bezden

'! "#$%& \' ()*+,-./:;?23 gold badges240 silver badges176 bronze badges

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
7

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Bạn có thể sử dụng các chức năng Dịch và Maketrans để ánh xạ các dấu câu đến các giá trị trống (thay thế)Jun 15, 2018 at 12:09

Đã trả lời ngày 17 tháng 3 năm 2020 lúc 15:14sneha

Vlad Bezdenvlad Bezden6 silver badges7 bronze badges

76.8K23 Huy hiệu vàng240 Huy hiệu bạc176 Huy hiệu đồng

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
8

Đã trả lời ngày 15 tháng 6 năm 2018 lúc 12:09Apr 30, 2011 at 21:07

SnehasnehaJohn Machin

7696 Huy hiệu bạc7 Huy hiệu Đồng11 gold badges138 silver badges183 bronze badges

Giả sử bạn muốn sử dụng regex và bạn muốn/cần mã unicode-đồng nhận thức 2.x sẵn sàng 2to3:

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
9

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 21:07

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Biogeek

21.3K21 Huy hiệu vàng80 Huy hiệu bạc138 Huy hiệu đồng21 gold badges80 silver badges138 bronze badges

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 18:00Apr 30, 2011 at 18:00

2

Đối với các ngôn ngữ khác như tiếng Đức, tiếng Tây Ban Nha, tiếng Đan Mạch, tiếng Pháp, vv có chứa các nhân vật đặc biệt (như "Umlaute" tiếng Đức là

import re
cleanString = re.sub('\W+','', string )
5,
import re
cleanString = re.sub('\W+','', string )
6,
import re
cleanString = re.sub('\W+','', string )
7) chỉ cần thêm chúng vào chuỗi tìm kiếm regex:

Ví dụ cho Đức:

[^A-Za-z0-9]+
0

Đã trả lời ngày 27 tháng 6 năm 2020 lúc 10:00Jun 27, 2020 at 10:00

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Petezurichpetezurichpetezurich

8.4008 Huy hiệu vàng37 Huy hiệu bạc54 Huy hiệu Đồng8 gold badges37 silver badges54 bronze badges

Điều này sẽ loại bỏ tất cả các ký tự đặc biệt, dấu câu và không gian từ một chuỗi và chỉ có số và chữ cái.

[^A-Za-z0-9]+
1

Đã trả lời ngày 11 tháng 5 năm 2021 lúc 8:29May 11, 2021 at 8:29

Dùng dịch thuật:

[^A-Za-z0-9]+
2

Hãy cẩn thận: Chỉ hoạt động trên các chuỗi ASCII.

Đã trả lời ngày 23 tháng 3 năm 2016 lúc 19:37Mar 23, 2016 at 19:37

JJmurrejjMurrejjmurre

3323 Huy hiệu bạc14 Huy hiệu Đồng3 silver badges14 bronze badges

2

Điều này sẽ loại bỏ tất cả các ký tự không phải là một số ký tự ngoại trừ không gian.

[^A-Za-z0-9]+
3

Không gian ký tự đặc biệt 888323

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Dharman ♦

28.2K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồng21 gold badges75 silver badges127 bronze badges

Đã trả lời ngày 1 tháng 2 năm 2021 lúc 16:57Feb 1, 2021 at 16:57

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

0

[^A-Za-z0-9]+
4

Giống như trích dẫn kép. "" "

[^A-Za-z0-9]+
5

Đã trả lời ngày 16 tháng 7 năm 2018 lúc 11:52Jul 16, 2018 at 11:52

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Sau 10 năm, dưới đây tôi đã viết có giải pháp tốt nhất. Bạn có thể xóa/làm sạch tất cả các ký tự đặc biệt, dấu câu, ký tự ASCII và không gian khỏi chuỗi.

[^A-Za-z0-9]+
6

Đã trả lời ngày 27 tháng 10 năm 2021 lúc 13:21Oct 27, 2021 at 13:21

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

[^A-Za-z0-9]+
7

Đã trả lời ngày 6 tháng 4 lúc 15:02Apr 6 at 15:02

Hướng dẫn how do i remove a weird character in python? - làm cách nào để xóa một ký tự kỳ lạ trong python?

Art Binduart BinduArt Bindu

7014 Huy hiệu bạc13 Huy hiệu đồng4 silver badges13 bronze badges

[^A-Za-z0-9]+
8

và bạn sẽ xem kết quả của bạn là

'askhnlaskdjalsdk

Đã trả lời ngày 25 tháng 2 năm 2016 lúc 8:00Feb 25, 2016 at 8:00

DSW WDSDSW WDSDsw Wds

4745 Huy hiệu bạc17 Huy hiệu đồng5 silver badges17 bronze badges

1

Làm cách nào để loại bỏ các ký tự đặc biệt khỏi Python?

Các phương thức sau có thể được sử dụng để loại bỏ các ký tự đặc biệt khỏi chuỗi trong Python,..
Phương thức isalnum () ..
Sử dụng các biểu thức chính quy (regex) trong Python ..
Phương thức thay thế () ..
Phương thức bộ lọc () ..
Phương thức dịch () ..

Làm cách nào để loại bỏ một ký tự kỳ lạ khỏi một chuỗi trong Python?

Trong Python, để loại bỏ các ký tự đặc biệt trong chuỗi Python, chúng tôi sử dụng isalnum () để loại bỏ các ký tự đặc biệt khỏi chuỗi. Các nhân vật đặc biệt có thể là khoảng trắng, dấu câu hoặc chém.isalnum() for removing special characters from a string. Special characters can be whitespace, punctuation, or slash.

Làm thế nào để bạn loại bỏ các ký tự không mong muốn khỏi văn bản trong Python?

Python loại bỏ ký tự khỏi chuỗi bằng cách sử dụng dịch (), chúng ta phải chỉ định điểm mã Unicode cho ký tự và 'không' làm thay thế để xóa nó khỏi chuỗi kết quả.Chúng ta có thể sử dụng hàm ord () để có được điểm mã unicode của một ký tự.specify the Unicode code point for the character and 'None' as a replacement to remove it from the result string. We can use ord() function to get the Unicode code point of a character.

Làm thế nào để bạn thoát khỏi các đặc điểm đặc biệt?

Làm thế nào để xóa các ký tự đặc biệt khỏi văn bản..
Chuẩn bị văn bản của bạn.Đã sẵn sàng văn bản của bạn với các ký tự không mong muốn ..
Nhập dữ liệu.Dán dữ liệu của bạn hoặc tải tệp vào khu vực đầu vào ..
Chọn tùy chọn.Nhấp vào "Tùy chọn" và chọn bộ ký tự mong muốn bạn muốn giữ ..
Nộp.Nhấp vào nút "Gửi".....
Tất cả đã được làm xong..