Как выполнить поиск и замену с условием в C# и/или регулярном выражении?
Всем привет. Я прошу об этом для моего редактирования Википедии. Я не из области компьютерных наук, но я много редактирую Википедию.
Я использую программное обеспечение под названием auto wiki browser для редактирования: краткое введение в AWB - Wikipedia[^] AWB-это очень мощный инструмент. Он также поддерживает модули.Википедия:AutoWikiBrowser/Пользовательские Модули - Википедия[^] также регулярное выражение.
Я запускаю задачу поиска и замены с помощью awb. Я хочу добавить некоторые правила для пропуска.
Короче говоря, моя точная проблема: в Википедии есть много страниц, называемых, например, страницей неоднозначности: Роберт Абель - Википедия[^]
На этой странице Роберта Абеля перечислены все люди по имени Роберт Абель и больше ничего. В идеале ни одна вики-страница не должна ссылаться на Роберта Абеля. На страницах должна быть ссылка на конкретного Робертса. Например Роберт Абель (аниматор)[^] или Роберт Абель (футболист).
Вот что я хочу сделать: AWB составляет список всех страниц, ссылающихся на Роберта Абеля (базовая страница). Я хочу найти Роберта Абеля и заменить его Робертом Абелем (аниматором). Но если текст "Роберт Абель (футболист)" или "Роберт Абель (автогонщик)", то я хочу пропустить его.
Что я уже пробовал:
public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip) { Skip = false; Summary = "test"; ArticleText = ArticleText.Replace("Robert Abel", "Robert Abel (animator)"); return ArticleText; }
Я попробовал приведенный выше код в модуле AWB. Но это добавления "Роберт Абель (аниматор) (animator)", если в статье уже есть "Роберт Абель (аниматор)". Я попытался добавить еще один параметр, но он дал ошибку компиляции. Это ошибочный код:
public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip) { Skip = false; Summary = "test"; ArticleText = ArticleText.Replace("Robert Abel", "Robert Abel (animator)"); if ArticleText = "Robert Abel (animator)" { Skip = true; } else { ArticleText.Replace("Robert Abel", "Robert Abel (animator)"); } return ArticleText; }
Я хочу добавить несколько других правил. пример: пропустите, если присутствуют "А", "В" или "с". Если D присутствует, то измените его на E. Если присутствует буква "F", то измените ее на "G".
Пожалуйста, помогите мне.
0x01AA
Для c# if ArticleText = "Robert Abel (animator)"
должна стать if (ArticleText == "Robert Abel (animator)")