Как в notepad++ удалить повторяющиеся слова?

Ссылка скопирована
1 ответ

Имеем БД формата mail:password

Например :

alex@mail.ru;password1
alex@mail.ru;password2
alex1@mail.ru;password1
alex2@mail.ru;password1

Каким регулярным выражением можно искать дубликаты до ;
Чтобы подсветить alex@mail.ru

А также интересно, как сделать это после запятой.
Спасибо.

Всю голову уже себе поломал )

Дополнительно:

Что-нибудь типа "*@*;" не помогает?

  • Дмитрий, нет )

    мыла выделяются по такому принципу
    (b[A-Za-z0-9._%+-]+@[A-Za-Z0-9.-]+.[A-Za-z]{2,6})

    как бы дописать, чтобы выделять дубликаты до точки с запятой

  • Скорее всего никаким, надо плагин искать. Тут уже нужна мини-программа.
  • Искать: ^([^;]+)(;[^rn]+)r?n1;[^rn]+r?n
    Заменять: 12n

    Как делать после запятой неопределено, потому что неопределено где находится искомая запятая.

  • а в notepad++ нет сортировки строк? Скопировать содержимое в отделный файл, отсортировать, посмотреть глазами. Я в Sublime так делал.
    В Linux, в консоли задача решается элементарно:
    cat file_name | sort | uniq
    Там ещё ключи у uniq есть, если что
  • Михаил Ливач, посмотреть глазами 100к строк, потребуется окулист
  • AUser0, братец !!! это работает !!! огромное тебе спасибо !!!!!!!!
  • floydharmon6186, пжалста.
  • AUser0, классный способ, а в PHP можно как-то ссылаться на предыдущую подмаску? Пробую не получается.
  • psiklop, вот документация: https://www.php.net/manual/ru/regexp.reference.bac...
  • floydharmon6186,

    посмотреть глазами 100к строк, потребуется окулист

    Вы раньше не указывали, сколько там строк. У меня была пара страниц, так что проблем со зрением не возникло :)

  • Михаил Ливач, да разобрался, работает, но чуть по другому пишется.
    $test = "alex@mail.ru;password1 alex@mail.ru;password2 alex1@mail.ru;password1 alex2@mail.ru;password1";  echo preg_replace("/^([^;]+)(;[^rn]+)r?n\1;[^rn]+r?n/", "$1$2n", $test);

    $test = "alex@mail.ru;password1 alex@mail.ru;password2 alex1@mail.ru;password1 alex2@mail.ru;password1"; echo preg_replace("/^([^;]+)(;[^rn]+)r?n\1;[^rn]+r?n/", "$1$2n", $test);

  • на PHP можно было и простым путём пойти:
    <?php $rows = file("путь к файлу"); $pairs = []; foreach ($rows as $row) {     $chunks = explode(';', $row, 2);     if ( array_key_exists($chunks[0], $pairs) ) {         continue;     }     $pairs[ $chunks[0] ] = $chunks[1]; }

    <?php $rows = file("путь к файлу"); $pairs = []; foreach ($rows as $row) { $chunks = explode(';', $row, 2); if ( array_key_exists($chunks[0], $pairs) ) { continue; } $pairs[ $chunks[0] ] = $chunks[1]; }

  • Ответы:

    Решение предоставил пользователь @AUser0
    Искать: ^([^;]+)(;[^rn]+)r?n1;[^rn]+r?n
    Заменять: 12n

    Огромная благодарность !

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Антон С. Ответ

    Для удаления повторяющихся слов в тексте в Notepad++, можно воспользоваться функцией поиска и замены с использованием регулярных выражений. Для этого выполните следующие шаги:

    1. Откройте текстовый документ в Notepad++.
    2. Нажмите сочетание клавиш Ctrl + H, чтобы открыть окно поиска и замены.
    3. Установите флажок "Match case" (с учетом регистра), если необходимо учитывать регистр слов.
    4. В поле "Find what" введите следующее регулярное выражение: (\b\w+\b)\s+\1
    5. Оставьте поле "Replace with" пустым.
    6. Убедитесь, что в поле "Search mode" выбрано значение "Regular expression".
    7. Нажмите кнопку "Replace All".

    Этот шаблон регулярного выражения (\b\w+\b)\s+\1 найдет все повторяющиеся слова в тексте, после чего их можно удалить, нажав кнопку "Replace All". После выполнения этих действий все повторяющиеся слова будут удалены из текста.

    Пример использования регулярных выражений для поиска и удаления повторяющихся слов в Notepad++:

    Find what: (\b\w+\b)\s+\1
    Replace with: (leave blank)
    Search mode: Regular expression

    Find what: (\b\w+\b)\s+\1 Replace with: (leave blank) Search mode: Regular expression

    Следуя этим инструкциям, вы сможете легко удалить повторяющиеся слова из текста в Notepad++.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно