Объединение регулярок java

Пробую соединить эти два регулярных выражения

Pattern pattern = Pattern.compile ("^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); 
Pattern pattern = Pattern.compile ("[a-z0-9-]+\\.(ru|com|net|de|cn|uk|org|info|nl|tk)"); 

введите сюда описание изображения

С помощью логического ИЛИ это сделать не получается

Pattern pattern = Pattern.compile ("[a-z0-9-]+\\.(ru|com|net|de|cn|uk|org|info|nl|tk)"  |
                        "^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");

Ошибка

java: bad operand types for binary operator '|'
  first type:  java.lang.String
  second type: java.lang.String

Ответы (1 шт):

Автор решения: Aziz Umarov

Вот так выглядит паттерн

((([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5]))|([a-z0-9]+\\.(ru|com|net|de|cn|uk|org|info|nl|tk))

в Коде так

String regex ="((([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5]))|([a-z0-9]+\\.(ru|com|net|de|cn|uk|org|info|nl|tk))";
Pattern pattern = Pattern.compile(regex);
→ Ссылка