Perl Regex, ограничивающий длину слова - PullRequest
1 голос
/ 18 ноября 2011

Как создать регулярное выражение Perl, соответствующее следующим условиям?

  1. Длина слова должна быть больше 4 символов.
  2. Не должно содержать никаких неалфавитных символов (например, . - " ,)

Таким образом, такие слова, как "barbar ..", "bar.", "Ba ..", должны быть отклонены при сопоставлении.

Ответы [ 3 ]

6 голосов
/ 18 ноября 2011

Вы подразумеваете, что слово должно быть длиннее 4 символов и содержать только буквы?

Это будет соответствовать 5 или более букв из a-z, без учета регистра:

/^[a-zA-Z]{5,}$/
1 голос
/ 18 ноября 2011

Я бы взял ответ Nightfirecat и добавил к нему границы слов, чтобы поймать слова - он для всей строки.

/\b[a-zA-Z]{5,}\b/
0 голосов
/ 18 ноября 2011

Вместо алфавита, если вы хотите разрешить буквенно-цифровую, вы можете использовать это /^\w{5,}$/ (также будет соответствовать '_')

\ w обычно соответствует буквенно-цифровому значению в ASCII. Для некоторых исключений см. Ответ Синан в этом посте Как я могу проверить ввод в мой скрипт Perl CGI, чтобы я мог безопасно передать его в оболочку?

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