Python:正则表达式匹配字母数字不起作用?

Tom*_*mmo 26 python regex

我希望匹配从网站输入的字符串,以检查是否是字母数字,可能包含下划线.我的代码:

if re.match('[a-zA-Z0-9_]',playerName):
            # do stuff
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这与疯狂的角色相匹配,例如:nIg○▲☆★◇◆

我只想要常规AZ和0-9和_匹配,这里有什么我想念的吗?

Roz*_*uur 39

\w当没有指定LOCALEUNICODE标志时,Python有一个特殊的序列用于匹配字母数字和下划线.所以你可以修改你的模式,

pattern = '^\w+$'

  • 如果指定了LOCALE或UNICODE怎么办? (3认同)

Kla*_*sen 30

你的正则表达式只匹配一个字符.试试这个:

if re.match('^[a-zA-Z0-9_]+$',playerName): 
Run Code Online (Sandbox Code Playgroud)