Регулярное выражение Javascript для соответствия тексту раздела Википедии


Дан текст статьи в Википедии (см. http://test.wikipedia.org/w/index.php?title=Paris&action=raw ), я хотел бы извлечь все разделы, нуждающиеся в цитировании. В разметке Википедии необходимость в цитировании обозначается {{Citation needed}}, а заголовок раздела обозначается двумя знаками равенства для основных разделов (напр. ==Section 1==) или три знака равенства (напр. ===Section 1A===) для подразделов.

Мое регулярное выражение:

/(={2,3}[^==]+={2,3}[^==]+{{2}Citation needed[^}}]*}{2}[^==]*)(={2,3}[^==]+={2,3})?/g

Мое регулярное выражение работает для многих разделов, но не для других, и я не могу понять почему.

Совпадает ли:

===столица Франции= = = [[файл: Елисейский дворец, Париж 2005.формат JPG|палец|права|[[Елисейском дворце]], место жительства [[президент Франция|президент Франции]].]] Париж является местом проведения Национальное правительство Франции. Для исполнительной власти, два начальника каждый офицер имеет свою собственную официальную резиденцию, которая также служит свои кабинеты. [[Президент Франции]] проживает в [[Елисейском дворце Дворец]] в [[8-й Парижский округ / 8-й округ]], в то время как место [[премьер-министра Франции / премьер-министра]] находится на [[Отеля]] в [[7-й округ Парижа|7-й район]]. Правительственные министерства расположены в различных частях страны города; многие из них расположены в 7-м округе, недалеко от Матиньонский.

Две палаты французского парламента также расположены на [[Риве Гош / Левый Берег]]. Верхняя палата, [Сенат Франции|Сенат]], встречается в [[Люксембургском дворце]] в [[6-м округе Париж / 6-й округ]], в то время как более важная нижняя палата, [[Национальная ассамблея]], заседает в [[Бурбонском дворце]] в [[7-м округ Париж / 7-й]]. [[Список президентов Франции Сенат / Председатель Сената]], второй по величине государственный чиновник во Франции после того, как президент республики, проживает в "Petit Люксембург", меньший дворец, пристройка к [[Palais du Люксембург]].{{Требуется цитирование|дата=июнь 2010 года}}

Не совпадает ли с:

===межчувства общности=== некоторые из вышеперечисленных изменений, принятых в существование Парижа счета как [[агломерация]]. В отличие от большинства Основные городские районы Франции, такие как [[Лилль]] и [[Лион]], отсутствуют. [[коммуна во Франции#Intercommunality / intercommunal]] сущность в Городской район Парижа, отсутствие межобщинного совета, рассматривающего проблемы плотное городское ядро региона как целое; отчуждение Парижа от своего пригороды действительно проблема сегодня, и рассматривается многими {{Who / date=April 2011}} быть основными причинами гражданских беспорядков, таких как: пригородные беспорядки 2005 года. Прямой результат этих несчастных события-это предложения для более эффективной столичной структуры, чтобы охватить город Париж и некоторые его пригороды, начиная от социалистическая идея свободной "столичной конференции" ("conférence метрополитен") к правой идее более интегрированный " Гранд Париж"("Большой Париж").

Одной из главных причин такой несогласованности был страх, который испытывали люди. французское государство перед такой огромной агломерацией и желание чтобы воспользоваться его богатством. {{Требуется цитирование|дата=апрель 2011 г.}} С момента Средневековье и особенно после Смуты 1649 года (La Fronde), Париж рассматривался как источник опасности. Авторитаризм король Людовик XIV построил Версаль как новый политический центр, вдали от опасные городские толпы. Конфликт между государством и обществом Кульминации город достиг с революцией 1871 года (La Commune): Французская Ассамблея в Бордо решила, что Париж больше не будет столицей Франции. столица, в то время как Парижская Коммуна обсуждала объявление Парижа независимая от Франции. С тех пор один из фундаментов централизованное французское государство должно было широко распределять парижские богатства при лишении агломерации и сохранении ее разделенной на 8 отделений и 1 200 коммуны. (Для анализа длительной враждебности против Парижа, см. [http://www-ohp.univ-paris1.fr/] {{проверить источник / дата=апрель 2011}}). Из 22 столичных регионов Франции 19 регулярно субсидируются-в основном парижскими ресурсами-в то время как Париж в пригородах нет необходимого оборудования.

Что не так с моим регулярным выражением?

EDIT: новое рабочее регулярное выражение ниже!

/(={2,3}((?!==).)+={2,3}((?!==)[^])+{{2}Citation needed((?!}})[^])*}{2}((?!==)[^])*)/g

Пояснение: соответствует любому заголовку раздела или подраздела (==раздел== или = = = подраздел===), за которым следует все, что не является двумя знаками равенства, затем строка типа {{требуется цитирование}}, за которой следует все остальное, что не является двумя знаками равенства.

1 2

1 ответ:

Проблема возникает с последовательностями, подобными этой: {{Who|date=. Код, который у вас есть для сопоставления текста между заголовком и {{необходима цитата}}, терпит неудачу, когда он попадает в =