Вы можете использовать
__.+?__
Вы можете быть удивлены тем, что я ничего не сказал о "не подбирайте подчеркивания по пути", поскольку во всех ваших попытках вы пытались что-то подобное.
Хитрость в том, чтобы использовать +?
, ленивый квантификатор. Я позволяю регулярному выражению соответствовать любому символу (.
), но как можно меньшее число раз , так что после него есть два подчеркивания. Как будто после сопоставления каждого символа движок регулярных выражений всегда спрашивает «есть ли два подчеркивания впереди?». И если они есть, вот где квантификатор перестает совпадать.
См. this для получения дополнительной информации о ленивых и жадных квантификаторах.