Это не накладывает никаких ограничений на то, где подчеркивание может встречаться, поэтому все «_a», «a_» и «_» будут совпадать. Если вместо этого вы хотите запретить начальное и конечное подчеркивание, что опять-таки оправданно для имен игроков, измените на:

, чтобы соответствовать строке, которая вводится с веб-сайта, чтобы проверить, является ли буквенно-цифровой и, возможно, содержит подчеркивание. Мой код:

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

По некоторым причинам это соответствует сумасшедшим символам, например: nIg ○ ▲ ☆ ★ ◇ ◆

Я хочу только обычные A-Z и 0-9 и _ соответствия, есть что-то, что я здесь упускаю?

Ответы на вопрос(3)

Ваш ответ на вопрос