2015-10-21 4 views
4

У меня есть список список из 2-х значений, разделенных запятой, как так:Regex Memorize все матчи, прежде чем заменить

A, 0xAA 
B, 0xBB 
C, 0xCC 

и т.д. Я хочу использовать Notepad ++ и Regex заменить этот список со списком этой формы :

A-B-C 
0xAA-0xBB-0xCC 

регулярное выражение, чтобы соответствовать шаблону выглядит следующим образом:

^(\w+), 0x(\w\w)$ 

Но я не знаю, как сделать блокнот замените спички так, как я описал. Это должно было бы запомнить матчи или что-то в этом роде, я даже не знаю, как описать это поведение, и, вероятно, поэтому я еще не нашел решения.

+1

Использование анализатора csv – hjpotter92

+0

У меня была аналогичная проблема, и я решил с помощью Excel сначала разделить на «,», а затем объединить эллесы столбцов с вашим разделителем. – appersiano

+1

Просто импортируйте в Excel, скопируйте/вставьте каждый столбец в новую строку, переносящую содержимое, а затем скопируйте/вставьте строку в Notepad ++, заменив все вкладки '-'s. Повторите со вторым столбцом. –

ответ

0

Как указано блокнота ++ не является хорошим инструментом для этого заменить, но если вы действительно нужно использовать, шаблон для простого примера будет большой:

Выкройка:

(\w)(,\s)(0x\w\w)\r\n(\w)(,\s)(0x\w\w)\r\n(\w)(,\s)(0x\w\w) 

Заменить :

$1-$4-$7 \r\n$3-$6-$9 
+0

Есть ли решение для n строк? – Xaser

+0

Я так не думаю, извините. – Neal

1

Вот обходной путь с Excel:

  1. Вставить список в Excel
  2. Выберите столбец и выберите данных, ->текста в колонки. Выбрать Размещено, set Разделители на "Comma" и Текстовый классификатор на {none}, используйте текст как тип данных.
  3. Копирование значений столбца 1 («A», «B» и т. Д.) И вставка с транспозицией в новую строку.
  4. Повторите с колонкой 2.
  5. Скопируйте 2 строки и вставьте в Блокнот ++ и замените все вкладки на -.

Результат:

A-B-C 
0xAA-0xBB-0xCC 
2

1.) Нажмите и удерживайте ALT -Key, выберите второй столбец элементов:

enter image description here

2.) Вырезать (CTRL+X) и просто паста (CTRL+V)

enter image description here

3) добавить "хэштег" (или что-то еще) между обеими областями

enter image description here

4.) Запуск Regex Замена с: ,?\s+ (замена -)

enter image description here

5.) заменить -#- с новой строки (\r\n):

enter image description here

Работы для любого количества строк и/или столбцов. просто промойте и повторите шаг 1,2,3, а затем 4 и 5. Второй блок станет второй, третьей - третьей и т. д.

+0

Уход, я не знал метод Alt + Selection. Мне нравится, что это лучше всего, однако, поскольку он строго говоря не является решением только для регулярных выражений, я подожду немного, прежде чем принять это как ответ. – Xaser

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