2015-11-30 6 views
0

См. Статью в Википедии «List of countries by total health expenditure per capita». Страны, перечисленные в длинном столе, должны быть ссылками. Это означает, что в wikitext названиям стран нужны двойные скобки вокруг них. Например; [[Australia]] - Это общая проблема при создании списков стран.Блокнот ++. Необходимо добавить скобки перед первым вводом символов в строки

Я вставил wikitext в Блокнот ++. Я знаю, как добавлять скобки перед названиями стран. Есть несколько уникальных символов и разрывов строк, которые позволяют мне использовать базовую находку и замену (нет необходимости в регулярных выражениях).

Но я не могу понять, как добавить скобки после названий стран. После каждого названия страны есть набор двойных баров. Но, к сожалению, в каждой строке есть несколько наборов двойных баров. Смотрите некоторые из вики-текста:

|- 
|Australia||3866||..||.. 
|- 
|Austria||4528||4553||.. 
|- 
|Belgium||4225||4256||.. 

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

+0

Для ответов только ниже "Заменить все" работает в Notepad ++. По крайней мере, в версии 6.8.1 Notepad ++. С августа 2015 года существует версия v6.8.2, которую мне нужно попробовать. Я имею в виду ответы anubhava и Erutan409. – twirlyman

+0

Анубхава ответил на мой точный вопрос. Erutan409 пошел дальше. Я очень ценю оба ответа! Они помогут во многих ситуациях в Википедии. Я передам информацию там. – twirlyman

+0

Эта дискуссия связана с [этой страницей на странице Викимедиа] (https://commons.wikimedia.org/wiki/Commons:Convert_tables_and_charts_to_wiki_code_or_image_files). Больше идей по этой и смежным темам можно найти здесь. Часть этой информации была скопирована и развита там. См. Раздел «Быстрое связывание длинных списков стран» (или аналогичный заголовок). – twirlyman

ответ

0

Я раздвоенный анубхава это регулярное выражение демо и создал this regex, вместо:

^.*?\|\h*\K(.*?)(?=\h*\|) заменить [[$1]]

enter image description here

+0

Спасибо! Это отлично работает после того, как я понял, что в Notepad ++ работает только «Заменить все». По крайней мере, в версии 6.8.1 Notepad ++. С августа 2015 года существует версия v6.8.2, которую мне нужно попробовать. – twirlyman

+0

Очень приветствуется. Если бы это был окончательный ответ, который решил вашу проблему, не могли бы вы дать «Принятый ответ»? – Erutan409

+0

Для других, читающих это: скобки добавляются вокруг обоих концов названий стран. Включая названия стран, состоящие из нескольких слов. И это происходит только в первой ячейке каждой строки. Другими словами, названия стран перед первым набором двойных баров. Это очень полезно в Википедии. – twirlyman

0

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

^.*?\K\|\| 

\K сбрасывает начальную точку отчётного матча. Любые ранее употребляемые символы больше не включаются в окончательный матч

Обязательно используйте режим MULTILINE.

RegEx Demo

+0

Я новичок в regex. В Notepad ++ я вижу, что '^. *? \ K \ | \ |' находит первые две строки в каждой строке. Но я не могу понять, как заставить Notepad ++ заменить их на ']] ||' – twirlyman

+0

Я на OSX, поэтому не могу ответить, к сожалению, но я предполагаю, что он должен быть помещен в текстовое поле замены. Нажмите 'ctrl-H' и введите над regex в' Find' и введите '\] \] \ | \ |' на замену. – anubhava

+0

Это не помогло в Notepad ++. Ничего в поле замены не вводится в wikitext. В [RegEx Demo] (https://regex101.com/r/eY9jE5/1) все, что мне нужно поставить в поле замены, это ']] ||'. Я вижу, что модификаторы g и m необходимы в этой демонстрации. Когда они удаляются в верхнем правом углу, ничего не заменяется. – twirlyman

 Смежные вопросы

  • Нет связанных вопросов^_^