Regex для шаблонов вики-текста MediaWiki - PullRequest
1 голос
/ 24 января 2012

Расширение Yaron Koren ReplaceText MediaWiki позволяет мне использовать регулярные выражения для замены текста в MediaWiki. У меня есть около 300 страниц MediaWiki с двумя экземплярами шаблона. Я хочу удалить только второй шаблон, используя регулярные выражения. (заменить его ничем)

У меня есть:

}} <--end of first template-->

{{Template Call

|blahField=blahValue

|blahField=blahValue

|...

}}

Я думаю, что хочу найти: ^[ \\}} \r \\{{ *? ]

и замените его на: ^[ \\}} ]

но это не дает желаемого результата, когда я проверяю его на rexv.org

Оцените некоторую помощь с регулярными выражениями.

Ответы [ 3 ]

1 голос
/ 24 января 2012

На странице расширения написано

Допустимый набор регулярных выражений - это, по сути, небольшое подмножество наборов регулярных выражений PHP и MySQL (он был протестирован толькос MySQL - работает ли он на других системах баз данных, неизвестно).Символы, которые можно использовать в строке поиска: "(). * +? [] |"

Так что, возможно, используемые вами символы не работают.Возможно ли, что он все испортил?

0 голосов
/ 07 июня 2016

У меня здесь есть взлом:

  1. Сделайте ваш {{Template Call}} Шаблон пустым.
  2. Используйте ReplaceText для замены \{\{ *Template[ _]Call (с регулярным выражением, чтобы избежать плохо отформатированных вызовов) на {{subst:Template Call.
  3. Тогда места, которые у вас есть Template Call, будут заменены содержимым {{Template Call}}, которое пусто.

Надеюсь, это поможет.

0 голосов
/ 15 декабря 2012

ReplaceText не подходит для таких замен.Используйте PyWikipediaBot или AutoWikiBrowser.

...