2

Задан шаблон комплексного числа в виде шаблона {real, image}, например:

{1, 2}
{1.2, 2.3}
{1.2e+100, 5.678e-10}
{1.2E-2, -5.678E+01}
{+.12, +5.5e-12}

Требуется составить регулярное выражение для извлечения/парсинга реальной и мнимой частей комплексного числа.

 String regex = "([{]*)([,]*)([}])";
 Pattern pattern = Pattern.compile(regex);
 Matcher matcher = pattern.matcher("{1.2e+100, 2.34555}");

Не работает :(

P.S. Как то обычно обходился без regex'ов, но вот поди же - столкнулся :)

Barmaley
  • 81,300
  • https://ru.stackoverflow.com/questions/575862/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5-%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%87%D0%B8%D1%81%D0%B5%D0%BB-%D1%81-%D0%BF%D0%BB%D0%B0%D0%B2%D0%B0%D1%8E%D1%89%D0%B5%D0%B9-%D1%82%D0%BE%D1%87%D0%BA%D0%BE%D0%B9 – splash58 Sep 29 '19 at 19:38
  • ^ там выражение для числа, вам останется только добавить антураж вокруг и поставить его два раза, или сделать шаблон – splash58 Sep 29 '19 at 19:39
  • С одним числом нет проблем - всю картину убивают фигурные скобки... – Barmaley Sep 29 '19 at 19:53
  • 1
    \{<тут выражение для числа>,\s*<тут выражение для числа>\} – splash58 Sep 29 '19 at 19:54
  • @Barmaley https://regex101.com/r/dvgACQ/1/ - вот результат – nikialeksey Sep 30 '19 at 04:58
  • @nikialeksey оформите в виде ответа, пожалуйста. – Barmaley Sep 30 '19 at 06:25
  • @Barmaley я бы скорее отметил как дубликат моей первой ссылки – splash58 Sep 30 '19 at 08:37

1 Answers1

2
^\{([-+]?[0-9]*[.,]?[0-9]+(?:[eE][-+]?[0-9]+)?),\s*([-+]?[0-9]*[.,]?[0-9]+(?:[eE][-+]?[0-9]+)?)\}$

Протестировать можно тут

nikialeksey
  • 1,515