[A-Z] {2,4} без ограничения от 2 до 4 символов - PullRequest
3 голосов
/ 17 декабря 2009
PCRE: /\A[A-Z0-9_\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[a-z]{2,4}|museum|travel)\z/i 
POSIX: /^[A-Z0-9_\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[A-Z]{2,4}|museum|travel)$/i

Это регулярное выражение корректно во всех отношениях для моих нужд, за исключением того, что оно разрешает такие электронные письма, как jim@f.com. Это говорит, что это совпадение. Если я не ошибаюсь, не означает ли {2,4} после [A-Z], что оно должно быть от 2 до 4 символов? Может ли быть проблема с ссорой, музеем и путешествиями? Я проверил, что это разрешено в моем приложении, и несколько тестеров регулярных выражений. Кроме того, я не уверен, правильно ли я сделал PCRE и POSIX. Я боюсь, что они оба могут быть PCRE, и я смешон. AFAIK, JavaScript - это POSIX, а Ruby - это PCRE. Так что, если я не понял это правильно, позвольте мне просто , это была долгая, долгая ночь изучения регулярных выражений, входя и выходя, и я пытаюсь выглядеть крутым. :)

Ответы [ 3 ]

10 голосов
/ 17 декабря 2009

Да, но применяется только к доменному имени верхнего уровня (в вашем примере это com).

0 голосов
/ 25 февраля 2010

POSIX не поддерживает группы без захвата (?:group), поэтому ни одно из ваших регулярных выражений не является POSIX. JavaScript не использует POSIX. Регулярные выражения JavaScript выполнены в стиле Perl, но не обладают всеми функциями. Проверьте регулярное выражение вкуса на моем сайте для деталей.

0 голосов
/ 18 декабря 2009

Документация по регулярным выражениям Ruby:

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