Как реализовать вариативность в регулярных выражениях?

Решала задачу, прошерстила интернет, на некоторые вопросы не нашла ответ. По возможности подскажите, пожалуйста, что почитать, чтобы найти ответы (возможно название нужных символов).

ТЗ задачи:

  1. если номер начинается с '+', то он содержит 12 цифр
  2. если номер начинается с цифры или открывающей скобки, то он содержит 10 цифр
  3. может содержать 1 пару скобок '(' и ')'
  4. скобки (если они есть) внутри содержат четко 3 цифры
  5. номер может содержать только цифры, '+', '(' и ')'
  6. номер заканчивается на цифру

Мои вопросы:

  1. Как проверить, что номер начинается либо с открывающей скобки, либо с числа так, чтобы учитывать, что всего в подходящей строке может быть только 10 чисел? Написала такое выражение: ^[\d(]\d{10}, но если номер начинается с цифры, то в подходящем номере программа будет ждать 11 цифр

  2. Как реализовать требование, что скобки могут быть в любой позиции строки (кроме последней)? Предварительно эту часть записала так: ^[\d(](\d{3})\d{10}, но тут четко стоит позиция скобок (скобка на первом индексе, затем три числа, затем закрывающая скобка)


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