Читая документацию здесь мне кажется, что
re.compile(r'^[-\w]+$')
будет просто искать, есть ли какой-либо символ, который является буквенно-цифровым, подчеркиванием или дефисом. Но на самом деле это возвращает совпадение только в том случае, если все символы соответствуют этому описанию (т. Е. Оно терпит неудачу, если есть пробел, знак доллара, звездочка и т. Д.).
Я не очень понимаю, как это работает, чтобы проверить все символы, когда он говорит:
"*," + "и"? " все квалификаторы жадные, они соответствуют как можно большему количеству текста. "
Не означает ли это, что если в 6-м символе есть пробел, он будет соответствовать как можно большему количеству, а затем остановится и вернет найденное совпадение в первых 5 символах (вместо того, чтобы сказать «извините, я нашел ничего "по существу, когда он достигает несоответствия).
Заранее спасибо (я такой новичок в регулярных выражениях, и каждый раз, когда я изучаю его снова, я просто путаюсь).