Reputation: 43
I'm making a bot using discord.py. I want the bot to get triggered if a message from any user(on the server where the bot is present) is a mixture
of Integers
, Characters
and Strings
like this e.g 122-PG-CSAI-2022
How can I do so?
Upvotes: 0
Views: 227
Reputation: 1121
I'm not sure what you think the difference is between a char
and string
in this case, but this code will check if it contains at least one alphabetical letter and one int
:
on_message(message):
has_number = any(char.isdigit() for char in message.content)
has_non_number = any(char.islapha() for char in message.content)
if has_number and has_non_number:
# do something
edit:
on_message(message):
splits = message.content.split("-")
# it's not in the wanted format
if len(splits) != 4:
# return or something else
cont = True
# check if first is a number within range <1, 999>
try:
if int(splits[0]) <= 0 and int(splits[0] >= 1000:
cont = False
except ValueError:
cont = False
# check if second is one of the options
if splits[1] not in ["UG", "PG", "D"]:
cont = False
# check if third is one of the options
if splits[2] not in ["some", "options", "here"]:
cont = False
# check if fourth is a number from range <2022 ...>
try:
if int(splits[3]) < 2022:
cont = False
except ValueError:
cont = False
# it fits all the criteria
if cont:
# do stuff
Upvotes: 1
Reputation: 53
By Integers, Characters, and Strings, I assume you mean no special characters (i.e. @, !, *, &, etc.) If so, this works:
on_message(message):
for char in message.content:
if not char.isdigit() and not char.isalpha(): return False
#trigger bot here
Upvotes: 0