Мне нужно написать функцию, которая получает строку и регулярное выражение. Мне нужно проверить, есть ли совпадение и вернуть начальное и конечное местоположение совпадения. (Регулярное выражение уже скомпилировано qr//
.)
Функция может также получить флаг "global", а затем мне нужно вернуть пары (начало, конец) всех совпадений.
Я не могу изменить регулярное выражение, даже не добавить ()
вокруг него, так как пользователь может использовать ()
и \1
. Может быть, я могу использовать (?:)
.
Пример: с учетом "ababab" и регулярного выражения qr/ab/
, в глобальном случае мне нужно вернуть 3 пары (начало, конец).