Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpRgNPB 73 of 224 menu
◀ ▶

Несохраняющие скобки в Dart

Скобки ( ) выполняют две функции - группировка символов и функцию кармана. А что делать, если нужно сгруппировать, но в карман не класть? Для решения такой проблемы придуманы специальные несохраняющие скобки (?: ) - они группируют, но не кладут в карман.

В следующем примере первые скобки нам нужны для группировки, а вторые - для кармана. Однако, и те, и другие скобки сохраняют данные в карман:

var txt = "abab123"; var res = RegExp(r'(ab)+([1-9]+)').firstMatch(txt);

В результате в наших карманах будет следующее:

print(res?.group(0)); // выведет 'abab123' print(res?.group(1)); // выведет 'ab' print(res?.group(2)); // выведет '123'

Сделаем так, чтобы первая пара скобок только группировала, но не клала в карман:

var txt = "abab123"; var res = RegExp(r'(?:ab)+([1-9]+)').firstMatch(txt);

В результате в первом кармане будет наше число:

print(res?.group(1)); // выведет '123'
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить