Hướng dẫn python detect special character - python phát hiện ký tự đặc biệt

Tôi muốn biết liệu có cách nào để kiểm tra xem một chuỗi có ký tự đặc biệt sử dụng các phương thức như .isnumeric () hoặc .isDigit (). Và nếu không, làm thế nào tôi có thể kiểm tra nó với Regex? Tôi chỉ tìm thấy câu trả lời về việc kiểm tra xem nó có chữ cái hoặc chữ số không.

Nội phân chính

  • Làm thế nào để bạn kiểm tra xem một chuỗi có chứa bất kỳ ký tự đặc biệt nào trong Python không?
  • Làm cách nào để kiểm tra xem một chuỗi có ký tự đặc biệt?
  • Làm thế nào để tôi tìm thấy các nhân vật đặc biệt trong Python?

hỏi ngày 16 tháng 7 năm 2019 lúc 17:40Jul 16, 2019 at 17:40

5

Kiểm tra xem bất kỳ ký tự nào không phải là chữ và số như:

any(not c.isalnum() for c in mystring)

Đã trả lời ngày 16 tháng 7 năm 2019 lúc 17:49Jul 16, 2019 at 17:49

Hướng dẫn python detect special character - python phát hiện ký tự đặc biệt

iPalekaipalekaipaleka

3,5022 huy hiệu vàng10 Huy hiệu bạc31 Huy hiệu đồng2 gold badges10 silver badges31 bronze badges

1

Hãy thử:

special_characters = ""[email protected]#$%^&*()-+?_=,<>/""
s=input()
# Example: $tackoverflow

if any(c in special_characters for c in s):
    print("yes")
else:
    print("no")
 
# Response: yes

Ty Hitzeman

8351 Huy hiệu vàng13 Huy hiệu bạc24 Huy hiệu đồng1 gold badge13 silver badges24 bronze badges

Đã trả lời ngày 30 tháng 7 năm 2020 lúc 13:09Jul 30, 2020 at 13:09

Mkgivkmkgivkmkgivk

2112 Huy hiệu bạc5 Huy hiệu Đồng2 silver badges5 bronze badges

3

Sử dụng

special_characters = ""[email protected]#$%^&*()-+?_=,<>/""
s=input()
# Example: $tackoverflow

if any(c in special_characters for c in s):
    print("yes")
else:
    print("no")
 
# Response: yes
2 (Doc):

text = 'This is my text with special character (👽)'

from string import printable

if set(text).difference(printable):
    print('Text has special characters.')
else:
    print("Text hasn't special characters.")

Prints:

Text has special characters.

Chỉnh sửa: Chỉ kiểm tra các ký tự và chữ số ASCII:

text = 'text%'

from string import ascii_letters, digits

if set(text).difference(ascii_letters + digits):
    print('Text has special characters.')
else:
    print("Text hasn't special characters.")

Đã trả lời ngày 16 tháng 7 năm 2019 lúc 17:49Jul 16, 2019 at 17:49

iPalekaipalekaAndrej Kesely

3,5022 huy hiệu vàng10 Huy hiệu bạc31 Huy hiệu đồng13 gold badges41 silver badges83 bronze badges

0

Hãy thử:

special_char = False
for letter in string:
    if (not letter.isnumeric() and not letter.isdigit()):
        special_char = True
        break

Ty Hitzeman

import re
word = 'asdf*'
special_char = False
regexp = re.compile('[^0-9a-zA-Z]+')
if regexp.search(word):
    special_char = True

8351 Huy hiệu vàng13 Huy hiệu bạc24 Huy hiệu đồngJul 16, 2019 at 17:45

Đã trả lời ngày 30 tháng 7 năm 2020 lúc 13:09Zachary Oldham

Mkgivkmkgivk1 gold badge5 silver badges20 bronze badges

1

2112 Huy hiệu bạc5 Huy hiệu Đồng

def has_special_char(text: str) -> bool:
    return any(c for c in text if not c.isalnum() and not c.isspace())


if __name__ == '__main__':
    texts = [
        '[email protected]$^Y$',
        '    ',
        'asdads 345345',
        '12😄3123',
        'hnfgbg'
    ]
    for it in texts:
        if has_special_char(it):
            print(it)

output:

[email protected]$^Y$
12😄3123

Sử dụng

special_characters = ""[email protected]#$%^&*()-+?_=,<>/""
s=input()
# Example: $tackoverflow

if any(c in special_characters for c in s):
    print("yes")
else:
    print("no")
 
# Response: yes
2 (Doc):Jul 16, 2019 at 17:55

Chỉnh sửa: Chỉ kiểm tra các ký tự và chữ số ASCII:abdusco

text = 'text%'

from string import ascii_letters, digits

if set(text).difference(ascii_letters + digits):
    print('Text has special characters.')
else:
    print("Text hasn't special characters.")
2 gold badges26 silver badges39 bronze badges

0

Andrej Keselyandrej Kesely

134K13 Huy hiệu vàng41 Huy hiệu bạc83 Huy hiệu đồng

# Python program to check if a string 
# contains any special character 

# import required package 
import re 

# Function checks if the string 
# contains any special character 
def run(string): 

    # Make own character set and pass  
    # this as argument in compile method 
    regex = re.compile('[@_!#$%^&*()<>?/\|}{~:]') 

    # Pass the string in search  
    # method of regex object.     
    if(regex.search(string) == None): 
        print("String is accepted") 

    else: 
        print("String is not accepted.") 


# Driver Code 
if __name__ == '__main__' : 

    # Enter the string 
    string = "Geeks$For$Geeks"

    # calling run function  
    run(string) 

Một cách không lý tưởng nhưng tiềm năng để làm điều đó trong khi tôi tìm kiếm một giải pháp tốt hơn:Jul 16, 2019 at 18:02

Cập nhật: Hãy thử điều này, nó thấy nếu Regex có mặt trong chuỗi. Regex được hiển thị là cho bất kỳ ký tự không phải là đồngumeric.Kartikeya Sharma

Đã trả lời ngày 16 tháng 7 năm 2019 lúc 17:451 gold badge10 silver badges20 bronze badges

Zachary Oldhamzachary Oldham

special_characters = ""[email protected]#$%^&*()-+?_=,<>/""
s=input()
# Example: $tackoverflow

if any(c in special_characters for c in s):
    print("yes")
else:
    print("no")
 
# Response: yes
0

8081 Huy hiệu vàng5 Huy hiệu bạc 20 Huy hiệu đồng

special_characters = ""[email protected]#$%^&*()-+?_=,<>/""
s=input()
# Example: $tackoverflow

if any(c in special_characters for c in s):
    print("yes")
else:
    print("no")
 
# Response: yes
1

Giả sử một khoảng trắng không được tính là một nhân vật đặc biệt.

Đã trả lời ngày 16 tháng 7 năm 2019 lúc 17:55Jul 16, 2019 at 17:53

Làm thế nào để bạn kiểm tra xem một chuỗi có chứa bất kỳ ký tự đặc biệt nào trong Python không?

AbdusCoabduscoMake a regular expression(regex) object of all the special characters that we don't want, then pass a string in search method. If any one character of string is matching with regex object then search method returns a match object otherwise return None.

Làm cách nào để kiểm tra xem một chuỗi có ký tự đặc biệt?

8.4052 Huy hiệu vàng26 Huy hiệu bạc39 Huy hiệu Đồng.

GeekSforGeeks có một ví dụ khá tốt bằng cách sử dụng Regex.

Nguồn-> https://www.geeksforgeek.org/python-program-check-string-contains-pecial-character/ Các ký tự đặc biệt được xem xét-> [@_!#$%^&*()?/\ | } {~:]

Làm thế nào để tôi tìm thấy các nhân vật đặc biệt trong Python?

Đã trả lời ngày 16 tháng 7 năm 2019 lúc 18:02.

Kartikeya Sharmakartikeya Sharma

1.2141 Huy hiệu vàng10 Huy hiệu bạc20 Huy hiệu đồng

Bạn có thể chỉ cần sử dụng phương thức chuỗi

special_characters = ""[email protected]#$%^&*()-+?_=,<>/""
s=input()
# Example: $tackoverflow

if any(c in special_characters for c in s):
    print("yes")
else:
    print("no")
 
# Response: yes
3 như vậy:

Điều này hiển thị:

Hãy xem ở đây nếu bạn muốn tìm hiểu thêm về nó.

Đã trả lời ngày 16 tháng 7 năm 2019 lúc 17:53

Cách tiếp cận: Tạo đối tượng biểu thức thông thường (Regex) của tất cả các ký tự đặc biệt mà chúng ta không muốn, sau đó chuyển một chuỗi trong phương thức tìm kiếm. Nếu bất kỳ một ký tự nào của chuỗi phù hợp với đối tượng Regex thì phương thức tìm kiếm sẽ trả về một đối tượng khớp khác không trả về không.