Задать вопрос

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

Есть следующий входной текст:
X
X (+ Y)

На выходе должно быть два совпадения:

MATCH 1
1. 'X'
MATCH 2
1. 'X'
2. 'Y'

То есть, если в строке есть блок (+ Y), то X выделить в первую группу, Y - во вторую группу.
Если блока (+ Y) нет, то просто выделить X в первую группу.

Предполагаю, что нужно использовать lookahead, либо правильно настроить жадность, но попытки не увенчались успехом.

Я отталкиваюсь от данного регулярного выражения:
(x\s)(?=(\+\s)(y)|(x))
Спасибо за помощь!
  • Вопрос задан
  • 2398 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    RT-001 Эксплуатация RT.DataLake
    1 неделя
    Далее
  • Хекслет
    Fullstack-разработчик на Node.js
    16 месяцев
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Z-r
Не уловил, зачем здесь lookahead, ERE хватит:

/(\w)\s*(\(\+\s\w\))?/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы