Python 如何检查除某些值外是否为字母数字
Python how to check if something is alphanumeric except for certain values
我正在尝试确定字符串是否为电子邮件。要求当然是@email.com,第一个字母必须大写并且必须是字母数字,除了@和句点。我一直在寻找的是是否有办法检查电子邮件是否为字母数字,除了句点和 @
我想要的是代码 return 对于电子邮件为真当且仅当第一个字母是大写时,它有 @emuail.com 并且它是字母数字除了 @和期间。我想要的是一种检查字母数字的解决方案,除了电子邮件的 @emauil.com 部分中的 @ 和句点。
我想我可以在@email 部分分隔电子邮件并检查@email 之前的所有内容的.isalnum,但我只是想看看是否有更简单的方法。
这是我当前的代码,当然 return 都是假的,因为 @ 和句点:
emails = ['Hello@emuail.com', 'Hello2@emuail.comaas', 'hello--1@emuail.com']
result = []
for idx, email in enumerate(emails):
if '@emuail.com' in email and email[0].isupper() and email.isalnum():
result.append(True)
else:
result.append(False)
print(result)
当字符串 searching/testing 变得稍微复杂时,使用 regular expressions.
通常更好(更具可读性和灵活性)
import re
# from https://emailregex.com/
email_pattern = re.compile(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)")
emails = ['Hello@emuail.com', 'Hello2@emuail.comaas', 'hello--1@emuail.com']
for email in emails:
if email_pattern.match(email):
print(email)
请注意,电子邮件地址中允许使用连字符,但如果您出于某种原因不想使用它们,请将它们从正则表达式中删除。
此生成器将 return 有效电子邮件。如果您需要更多规则,请将它们添加到条件中。然而,re
更好。
emails = ['Hello@emuail.com', 'Hello2@emuail.comaas', 'hello--1@emuail.com']
[i for i in emails if '@' in i and i[-4:] == '.com' and i.split('@')[0].isalnum() and '@' is not i[-5]]
我正在尝试确定字符串是否为电子邮件。要求当然是@email.com,第一个字母必须大写并且必须是字母数字,除了@和句点。我一直在寻找的是是否有办法检查电子邮件是否为字母数字,除了句点和 @
我想要的是代码 return 对于电子邮件为真当且仅当第一个字母是大写时,它有 @emuail.com 并且它是字母数字除了 @和期间。我想要的是一种检查字母数字的解决方案,除了电子邮件的 @emauil.com 部分中的 @ 和句点。
我想我可以在@email 部分分隔电子邮件并检查@email 之前的所有内容的.isalnum,但我只是想看看是否有更简单的方法。
这是我当前的代码,当然 return 都是假的,因为 @ 和句点:
emails = ['Hello@emuail.com', 'Hello2@emuail.comaas', 'hello--1@emuail.com']
result = []
for idx, email in enumerate(emails):
if '@emuail.com' in email and email[0].isupper() and email.isalnum():
result.append(True)
else:
result.append(False)
print(result)
当字符串 searching/testing 变得稍微复杂时,使用 regular expressions.
通常更好(更具可读性和灵活性)import re
# from https://emailregex.com/
email_pattern = re.compile(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)")
emails = ['Hello@emuail.com', 'Hello2@emuail.comaas', 'hello--1@emuail.com']
for email in emails:
if email_pattern.match(email):
print(email)
请注意,电子邮件地址中允许使用连字符,但如果您出于某种原因不想使用它们,请将它们从正则表达式中删除。
此生成器将 return 有效电子邮件。如果您需要更多规则,请将它们添加到条件中。然而,re
更好。
emails = ['Hello@emuail.com', 'Hello2@emuail.comaas', 'hello--1@emuail.com']
[i for i in emails if '@' in i and i[-4:] == '.com' and i.split('@')[0].isalnum() and '@' is not i[-5]]