Максимальное количество совпадений регулярного выражения
Увидел вопрос про поиск всевозможных бананов и задумался вот о чём. Можно подобрать строку из 10 символов и регулярное выражение которое вернёт 11 совпадений. Например в Питоне:
@>>> len(re.findall(r'\b|$', "0 2 4 6 8 "))
11
Можно ли больше? Можно получить двеннадцать совпадений из десятисимвольной строки? И вообще, как соотносятся длина строки и максимальное возможное число совпадений регулярного выражения?
Вопрос не ограничивается Питоном. Принимаются варианты на любых языках, лишь бы это были регулярные выражения.
Ответы (2 шт):
Автор решения: EzioMercer
→ Ссылка
Пример 11 на JS:
const str = '0123456789';
const regexp = /|/g;
const matches = str.match(regexp);
console.log('Length = ' + matches.length);
console.log(matches);
Автор решения: splash58
→ Ссылка
Если спецы не предложат варианта с несколькими проходами, то максимальная количество -- 10 символов + 11 границ между и вокруг них.
достигается в питоне
r'\b|.|$' - 21 совпадение