How do you check for special characters in a string in python?

I'd like to know if there is a way to check if a string has special characters using methods like .isnumeric[] or .isdigit[]. And if not, how can I check it with regex? I've only found answers about checking if it has letters or digits.

asked Jul 16, 2019 at 17:40

5

Check for any of characters not being alphanumeric like:

any[not c.isalnum[] for c in mystring]

answered Jul 16, 2019 at 17:49

ipalekaipaleka

3,5022 gold badges10 silver badges31 bronze badges

1

Give a try for:

special_characters = ""!@#$%^&*[]-+?_=,/""
s=input[]
# Example: $tackoverflow

if any[c in special_characters for c in s]:
    print["yes"]
else:
    print["no"]
 
# Response: yes

Ty Hitzeman

8351 gold badge13 silver badges24 bronze badges

answered Jul 30, 2020 at 13:09

mkgivkmkgivk

2112 silver badges5 bronze badges

3

Using string.printable [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.

EDIT: To test only ascii characters and digits:

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."]

answered Jul 16, 2019 at 17:49

Andrej KeselyAndrej Kesely

134k13 gold badges41 silver badges83 bronze badges

0

A non-ideal but potential way to do it while I look for a better solution:

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

UPDATE: Try this, it sees if the regex is present in the string. The regex shown is for any non-alphanumeric character.

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

answered Jul 16, 2019 at 17:45

Zachary OldhamZachary Oldham

8081 gold badge5 silver badges20 bronze badges

1

Assuming a whitespace doesn't count as a special character.

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 = [
        'asdsgbn!@$^Y$',
        '    ',
        'asdads 345345',
        '12😄3123',
        'hnfgbg'
    ]
    for it in texts:
        if has_special_char[it]:
            print[it]

output:

asdsgbn!@$^Y$
12😄3123

answered Jul 16, 2019 at 17:55

abduscoabdusco

8,4052 gold badges26 silver badges39 bronze badges

0

Geeksforgeeks has a pretty good example using regex.

Source --> //www.geeksforgeeks.org/python-program-check-string-contains-special-character/ Special Characters considered --> [@_!#$%^&*[]?/\|}{~:]

# 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] 

answered Jul 16, 2019 at 18:02

Kartikeya SharmaKartikeya Sharma

1,2141 gold badge10 silver badges20 bronze badges

You can simply using the string method isalnum[] like so:

firstString = "This string ha$ many $pecial ch@racters"
secondString = "ThisStringHas0SpecialCharacters"
print[firstString.isalnum[]]
print[secondString.isalnum[]]

This displays:

False
True

Take a look here if you'd like to learn more about it.

answered Jul 16, 2019 at 17:53

How do you check if a string contains any special characters in Python?

Approach : Make 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.

How do I find special characters in Python?

Practical Data Science using Python.
Import the string module..
Store the special characters from string. punctuation in a variable..
Initialize a string..
Check whether the string has special characters or not using the map function..
Print the result, whether valid or not..

How do I check if a string has special characters?

To check if a string contains special characters, call the test[] method on a regular expression that matches any special character. The test method will return true if the string contains at least 1 special character and false otherwise.

How do you check if a string starts with a special character in Python?

The startswith[] string method checks whether a string starts with a particular substring. If the string starts with a specified substring, the startswith[] method returns True; otherwise, the function returns False.

Chủ Đề