Мои навыки регулярных выражений довольно плохи, и большую часть времени они заставляют меня чувствовать себя глупо. Кто-нибудь может помочь?
Этот вопрос больше связан с лучшим владением регулярными выражениями, чем с работой по извлечению информации из грязевого супа, поэтому, если мое понимание системы шаблонов медиавики ошибочно, я не очень возражаю. Я замечу это достаточно скоро.
Я разбираю разметку MediaWiki и пытаюсь получить имена шаблонов MediaWiki. Они обозначаются чем-то вроде:
{{Название шаблона|другое
or
{{Имя шаблона}}
Если # сразу следует за фигурными скобками:
{{#Другое
Я хотел бы игнорировать это.
So...
Я хотел бы сопоставить 2 фигурные скобки {{, за которыми не следует #, до следующего вхождения любого | (вертикальная черта) или }} (2 закрывающих завитка)
So:
{{Я лягушка|кое-что еще соответствует
{{#Я лягушка|кое-что ещё не получается
мусор здесь{{Monkey}}бла-бла соответствие
мусор здесь{{#Monkey}}бла-бла сбой
и т.д...
Следующее регулярное выражение охватывает это (я думаю):
\{{2}(?!\#)(.*?)(?:\||\}\})
но также соответствует:
кое-что здесь {{{Giraffe|oijq
Как я могу заставить его потерпеть неудачу, если есть не ровно 2 открывающих фигурных скобки?
РЕДАКТИРОВАТЬ: регулярное выражение .net, кстати