Я ищу метод для выбора с помощью регулярных выражений строк, содержащих различные группы, некоторые из которых необязательны, и для захвата групп - конечно, найденных. После прочтения здесь на стеке потока и многих экспериментов я придумал этот достаточно общий подход:
^(?:.*?(aaa).*?|.*?)(xxx).*?(yyy)(?:.*?([^ \n]+).*?|.*?)$
Итак, общий термин для необязательных групп:
(?:.*?(blabla).*?|.*?)
Вышеуказанный подход имеет проблемы с возвратом в случае:
- большие тексты;
- когда ничто не совпадает;
- при наличии только необязательных групп.
Есть идеи, как создать достаточно универсальное регулярное выражение, способное захватывать дополнительные группы? Под общим я имею в виду, как в примере, который я нашел, легко масштабируемый для различных групповых паттернов.
Спасибо.