Правильно ли это регулярное выражение для обозначения только строк с минимальной длиной 3 и максимальной длиной 6? - PullRequest
0 голосов
/ 31 августа 2010

Правила для регулярных выражений на английском языке:

  • минимальная длина = 3
  • максимальная длина = 6
  • только буквы из таблицы ASCII, не числовые

Моя первоначальная попытка:

[A-Za-z]{3-6}

Вторая попытка

\w{3-6}

Это регулярное выражение будет использоваться для проверки входных строк из HTML-формы (т. Е. Проверки поля ввода).

Ответы [ 4 ]

4 голосов
/ 31 августа 2010

Модификация вашего первого была бы более подходящей

\b[A-Za-z]{3,6}\b

\b отмечает границы слова и избегает совпадения, например, с «abcdef» из «abcdefgh».Также обратите внимание на запятую между «3» и «6» вместо «-».

Проблема с вашей второй попыткой состоит в том, что она будет также включать числовые символы, снова не будет иметь границ слов и будет иметь разрыв между3 'и' 6 'неверны.

Редактировать: предложенное мной регулярное выражение полезно, если вы пытаетесь сопоставить слова из некоторого текста.Для проверки и т.д., если вы хотите решить, соответствует ли строка вашим критериям, вы должны будете использовать

^[A-Za-z]{3,6}$
2 голосов
/ 31 августа 2010

Я не знаю, какой движок регулярных выражений вы используете (это будет полезной информацией в вашем вопросе), но ваша первоначальная попытка будет соответствовать всем буквенным строкам длиннее трех символов.Возможно, вы захотите включить маркеры, ограничивающие слова, такие как \<[A-Za-z]{3,6}\>.

Маркеры различаются в зависимости от двигателя, поэтому обратитесь к документации для вашего конкретного двигателя (или обновите свой вопрос).

1 голос
/ 31 августа 2010

Первый должен быть изменен, как показано ниже

([A-Za-z]{3,6})

Второй будет разрешать числа, которые, я думаю, вы не хотите?

0 голосов
/ 31 августа 2010

первый должен работать, второй тоже будет содержать цифры, но вы хотите проверить нечисловые строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...