Регулярное выражение соответствует словам определенной длины
Я хотел бы знать регулярное выражение для соответствия словам таким образом, чтобы слова имели максимальную длину.
например, если длина слова не превышает 10 символов, я бы хотел, чтобы регулярное выражение соответствовало, но если длина превышает 10, то регулярное выражение не должно совпадать.
Я пробовал
^(\w{10})$
но это приносит мне совпадения, только если минимальная длина слова составляет 10 символов. Если слово больше 10 символов, оно по-прежнему соответствует, но соответствует только первым 10 символам.
Ответы
Ответ 1
Я думаю, вы хотите \w{1,10}\b
. \b
соответствует границе слова.
Конечно, вы также можете заменить \b
и сделать ^\w{1,10}$
. Это будет соответствовать слову не более 10 символов, если это единственное содержимое строки. Я думаю, это то, что вы делали раньше.
Так как это Java, вам действительно нужно избежать обратных косых черт: "\\w{1,10}\\b"
. Вы, наверное, уже это знали, но мне это удалось.
Ответ 2
^\w{0,10}$ # allows words of up to 10 characters.
^\w{5,}$ # allows words of more than 4 characters.
^\w{5,10}$ # allows words of between 5 and 10 characters.
Ответ 3
Длина символов для соответствия.
{n,m} n <= length <= m
{n} length == n
{n,} length >= n
И по умолчанию, двигатель жадный, чтобы соответствовать этому шаблону. Например, если вход 123456789,\d {2,5} будет соответствовать 12345, который имеет длину 5.
Если вы хотите, чтобы двигатель возвращался при длине 2, используйте \d {2,5}?
Ответ 4
Даже, я искал того же регулярного выражения, но я хотел также включить все специальные символы и пробелы. Итак, вот регулярное выражение для этого:
^[A-Za-z0-9\s$&+,:;[email protected]#|'<>.^*()%!-]{0,10}$