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,4522 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 131k13 gold badges40 silver
badges81 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 7881 gold badge4 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,3552 gold badges25 silver badges39 bronze badges
0 Geeksforgeeks has a pretty good example using regex. Source -->
https://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,1941 gold badge9 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 |