Замените все "Но" Regex Notepad++

У меня есть текстовый файл со строками, похожими на приведенные ниже: ('8510851205', 'needthishere', '', ''), он мне нужен, чтобы удалить все и оставить только эту потребность в каждой строке. Как бы я это сделал?

2 ответа

Вот что я бы сделал.

  1. Поиск (режим поиска: регулярное выражение): .',\ S' Заменить на: \n
  2. В окне поиска на вкладке "Пометить" поставьте в закладки (флажок) все строки с апострофом в них
  3. а) В меню "Поиск" выберите "Закладка", затем "Обратная закладка"
  4. а) На этом этапе у вас должны быть две закладки в закладки; Вы можете вернуться к тому же меню Поиск -> Закладка и вырезать / скопировать строки с закладками

3b) В меню поиска выберите "Удалить отмеченные строки", в результате чего останутся только те биты, которые вас интересуют.

введите описание здесь

  1. введите описание здесь

  2. введите описание здесь

3b. введите описание здесь

Вот простое регулярное выражение, которое вы ищете.

В N++ выберите вкладку "Заменить" в окне "Найти". Установите флажок "Регулярные выражения".

Найти:

^[^)]*\('[^']*',\s*'([^']*)'(?:,\s*''){2}\),?\s*$

Заменить:

\1

Нажмите кнопку "Заменить все".

В качестве примера я запустил этот файл:

('8510851205', 'needthishere', '', '')
('2120986452', 'slthornton', '', ''), 
('2121111111', 'strict_daddy4u', '', '')

Выход:

needthishere
slthornton
strict_daddy4u

Я мог бы сделать его короче, но хотел убедиться, что мы сопоставили полный набор из четырех строк, на случай, если у вас круглые скобки будут выглядеть иначе. Обратите внимание, что это определенно предполагает, что третья и четвертая строки пусты. Если вы хотите разрешить символы в этих строках, используйте вместо этого:

^[^)]*\('[^']*',\s*'([^']*)'(?:,\s*'[^']*'){2}\),?\s*$

Желаю вам отличной недели!

Другие вопросы по тегам