Регулярное выражение для электронной почты, которое должно содержать дефис между, но не в начальной и конечной позиции - PullRequest
0 голосов
/ 03 апреля 2019

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

/^[A-Z0-9-._%+]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;

Заранее спасибо

1 Ответ

0 голосов
/ 03 апреля 2019

Мне кажется, это работает

public class QuickyTest{

   static String[] testVectors = { "alaskjf", 
                          "o-kay@example.com",
                                 "-dash@x.AA", 
                                 "dash-@y.ZZ" };

   public static void main( String[] args ) {
      Pattern pattern = Pattern.compile( "(?i:[A-Z0-9._%+]+|[A-Z0-9._%+]+[A-Z0-9._%+-]+[A-Z0-9._%+]+@([A-Z0-9-]+.)+[A-Z]{2,4})" );
      for( String test : testVectors ) {
         Matcher match = pattern.matcher( test );
         System.out.println( test + " : " + match.matches() );
      }
   }

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