Дополнительные ^
символы внутри выражения в скобках в вашем шаблоне не являются, как я думаю, вы ожидаете, отрицанием;это делает только первая ^
в скобках.
Основная проблема, которая вызывает, помимо того, что допускается сопоставление фактического символа кругового отражения, когда вы, кажется, не хотите его, заключается в том, что вы в конечном итогес ^-^
рассматривается как диапазон.
Чтобы включить литерал -
, он должен быть первым или последним в скобках; из документов :
Чтобы указать правую скобку (]) в выражении в скобках, поместите его первым в списке (после начального огибающего (^), если есть).
Чтобы указать дефис в выражении в скобках, поместите его первым в списке (после начального окружности (^), если есть), последним в списке или в качестве конечной точки диапазона в выражении диапазона..
Итак, когда вам нужно сделать оба, сделайте дефис последним;Вы можете изменить свой шаблон на:
'[^]A-Za-z0-9[.{}!@#$%*()_=+|\{}"'';:?/, -]'
Вы также можете пропустить шаг tralsnate
, включив в шаблон специальные символы:
'[^]A-Za-z0-9[.{}!@#$%*()_=+|\{}"'';:?/, '||chr(10)||chr(11)||chr(13)||'-]'