Убрать все гиперссылки, которые появляются перед текстом (дамп Википедии)

Я работаю над дампом википедии, чтобы найти полезную информацию, связанную с первым предложением, которое появилось в первом абзаце. Дамп очень неструктурирован, поскольку почти все данные хранятся в одном столбце. Они используют комбинацию символов, чтобы распознать, как будет отображаться текст, например, когда какое-либо слово написано как «слово», оно будет выделено жирным шрифтом. Та же самая ситуация с гиперссылками, они используют [[]] для гиперссылок. Теперь, когда я хочу первое предложение (включая гиперссылки) первого абзаца, мне нужно убрать всю дополнительную информацию, которая не представляет текст. Я сделал это с помощью

 preg_replace("#\{{.*?}\}#s","", $text)

Пример текста (из дампа Википедии):

{{Ver desambig}}
{{Mais notas||ci|data=janeiro de 2013}}
{{Info/Taxonomia}}
[[Ficheiro:Pêra amarela.JPG|thumbnail|upright]] //image link which i don't want

A {{AO-pAO|pera|pêra}} é o fruto comestível da pereira, uma [[árvore]] do. //first sentence of first paragraph

Я удалил все {{}}, поэтому у меня осталось только:

[[Ficheiro:Pêra amarela.JPG|thumbnail|upright]]
A {{AO-pAO|pera|pêra}} é o fruto comestível da pereira, uma [[árvore]] do.

Теперь, если вы видите здесь две гиперссылки (гиперссылки представлены [[]]). Я хочу сохранить тот, который появился в первом предложении, т.е. Árvore но я не хочу никакой последовательности [[]] до этого. Я пытался удалить [[]] из текста, но это удаляет Árvore тоже чего я не хочу.

П.С .: Может быть более одной гиперссылки до начала первого предложения. Можно ли это сделать с помощью регулярных выражений? Я использую php. Спасибо

0

Решение

Используйте приведенное ниже регулярное выражение, а затем замените соответствующие символы пустой строкой.

(?s)^(?:\s*{{.*?}}|\s*\[\[.*?]])*\n?

^ в режиме ДОТАЛ (?s), соответствует началу самой первой строки.

DEMO

1

Другие решения

Возможно, вы захотите использовать синтаксический анализатор вики и изменить его для своих нужд.

http://www.mediawiki.org/wiki/Alternative_parsers

1

По вопросам рекламы [email protected]