Подтвердить что ты не робот

Регулярное выражение соответствует словам определенной длины

Я хотел бы знать регулярное выражение для соответствия словам таким образом, чтобы слова имели максимальную длину. например, если длина слова не превышает 10 символов, я бы хотел, чтобы регулярное выражение соответствовало, но если длина превышает 10, то регулярное выражение не должно совпадать.

Я пробовал

^(\w{10})$

но это приносит мне совпадения, только если минимальная длина слова составляет 10 символов. Если слово больше 10 символов, оно по-прежнему соответствует, но соответствует только первым 10 символам.

4b9b3361

Ответ 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}$