それを正規表現に変換し、それを使用して電子メール アドレスと照合します。
それはそれほど難しいことではありません:
import re
def translate_pattern(pattern):
res = []
for c in pattern:
if c == '*':
res.append('.+') # 1 or more
elif c == '.':
res.append('.') # exactly 1
else:
res.append(re.escape(c)) # anything else is a literal character
return re.compile(''.join(res))
この関数は、コンパイル済みの正規表現を返します。
>>> translate_pattern('baduser*@gmail.com').search('baduser12345@gmail.com')
<_sre.SRE_Match object at 0x107467780>
>>> translate_pattern('baduser*@gmail.com').search('gooduser@gmail.com')
任意の.
文字として一致するため、次の文字も一致することに注意してください。
>>> translate_pattern('baduser*@gmail.com').search('baduser12345@gmail-com')
<_sre.SRE_Match object at 0x1074677e8>
はinと.
一致するためです。-
gmail-com