Причина, по которой первые 3 появляются только потому, что вы используете $
в конце.
$
означает, что КОНЕЦ строки является последним введенным символом
так
any[4-6]{0,1}$
будет соответствовать
any4
любой
any6
any4
any6
любой
Если вы хотите найти его с пробелами на обоих концах, просто удалите $
.
Если вы пытаетесь найти его на основе определенной строки, где МОЖЕТ появиться пробел
используйте
^\s*any[4-6]{0,1}\s*$
Обратите внимание, что регулярные выражения различаются в определенных системах, и этот код может не работать на вашей платформе, так как \s
может быть неизвестен и т. Д.
Также обратите внимание, что фактический ПРОБЕЛ, т. Е. ^ [4-6]{0,1} $
, может не выполнять правильный поиск, и если он это делает, он будет искать только ПРОБЕЛЫ, а не пробелы, табуляции и т. Д.
Но если вы хотите наверняка включить пробелы, вы можете избежать их, т. Е. ^\ [4-6]{0,1}\ $
.
В некоторых системах, таких как Linux, пробел в команде заставит ее думать, что это следующая переменная / ввод, и не поймет, что [4-6]{0,1}
означает