За последние 24 часа нас посетили 22873 программиста и 1264 робота. Сейчас ищут 752 программиста ...

Нужна регулярка для удаления всех колонтитулов и нумерации страниц (примеры внутри)

Тема в разделе "Регулярные выражения", создана пользователем dobrmir, 26 июл 2017.

  1. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Для работы в Notepad++ нужна регулярка. Принципы могут быть например такие:
    Число в строке, где рядом нет больше ничего. И рядом отгороженная пустыми строками строка текста (колонтитул) или без таковой. Как сделать регулярку для любого числа, подсказали в соседней теме. Или без числа, слово разорванное переносом, после которого строка, с обоих сторон которой пустые строки (по одной или по несколько).

    [​IMG]

    хххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

    [​IMG]
    хххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

    [​IMG]

    хххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

    [​IMG]

    ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

    [​IMG]

    хххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

    [​IMG]
     
    #1 dobrmir, 26 июл 2017
    Последнее редактирование: 26 июл 2017
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    У вас номера страниц - число до и после которого есть перенос строки
    колонтитулы - без точек на конце (думаю и других знаков нет на конце)
    Попробуйте такую конструкцию:
    Код (Javascript):
    1. /(\v+\d+\v+[^\v]+[^\v\.:\-]\v+)|(\v+[^\v]+[^\v\.:\-]\v+(\d+\v+)?)/g
     
  3. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Выделяет весь текст полностью при попытке искать в строке поиска этой регуляркой.
     
  4. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Корректировать пробовали, согласно обстановке? Или даже не пытались разобраться в регулярке?
    Пробовали левую и правую часть регулярки отдельно?
     
    #4 Maputo, 26 июл 2017
    Последнее редактирование: 26 июл 2017
  5. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    С первого взгляда ни чего не понял в регулярке, как будет время, если нужно будет, буду пробовать разобраться.
    Сейчас попробовал:
    Код (Text):
    1. /(\v+\d+\v+[^\v]+[^\v\.:\-]\v+)
    Пишет:
    Cant find the text.
    Код (Text):
    1. (\v+\d+\v+[^\v]+[^\v\.:\-]\v+)
    Так тоже самое.

    А вот так
    Код (Text):
    1. (\v+[^\v]+[^\v\.:\-]\v+(\d+\v+)?)/g
    выделяет весь текст.
     
  6. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Попробуйте только то что внутри круглых скобок.
     
  7. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Сейчас будут пробовать, сейчас тестировал с таким текстом:
    [​IMG]
    Не смог отключить подчёркивание, поэтому текст так выгледит в сообщении, не отключается подчёркивание почему то.
     
  8. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Вот такие варианты не ищут:
    Код (Text):
    1. \v+\d+\v+[^\v]+[^\v\.:\-]\v+
    2. \d+\v+
    3. (\d+\v+)?
     
  9. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Если даже 2й вариант ничего не находит надо смотреть что у Вас за переносы строк. Пробуйте вместо \v+ комбинацию (\n\r)+ а лучше (\n\r){2,}
     
  10. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    А в каких случаях надо писать \n\r, как у Вас, а не r\n\ ?
     
  11. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    Судя по тому что не первый вопрос по регуляркам, разобраться все же стоит
     
  12. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Пока что изготовил такую регулярку \s[\r]?\n\d+\.?\d*\s([\r]?\n){1,} для удаления нумерации страниц, учитывая сразу вариант маркера конца строки для Windows и Unix (подробнее в книге Бен Форта «Регулярные выражения. 10 минут на урок. Освой самостоятельно» 2005 год (страницы 50 и 68)). Сейчас надо приделать удаление колонтитулов.
    Регулярка работает, если нажимать на «Заменить всё», а не «Заменить».

    Что то в голову сразу не пришло, а может туда $ лучше приделывать?
     
    #12 dobrmir, 28 июл 2017
    Последнее редактирование: 28 июл 2017
  13. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    Почитай в википедии про перевод строки
     
  14. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Вот так тоже работает \s[\r]?\n\d+\.?\d*\s$ , только приклеивает не в эту же строку, а делает перенос.
     
  15. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    \n - это перевод строки (подача бумаги принтером)
    \r - это возврат (каретки принтера) в начало строки

    Иногда достаточно только \n иногда используется пара \r\n (это я перепутал - действительно сначала \r потом \n)
    --- Добавлено ---
    @dobrmir, вот эта для колонтитулов:
    Код (Javascript):
    1. \v+[^\v]+[^\v\.:\-]\v+
    Но скорее всего надо так:
    Код (Javascript):
    1. \v{2}[^\v]+[^\v\.:\-]\v{2}
    Или даже так:
    Код (Javascript):
    1. \v{3}[^\v]+[^\v\.:\-]\v{3}
     
    #15 Maputo, 28 июл 2017
    Последнее редактирование: 28 июл 2017
    dobrmir нравится это.
  16. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    А как применить код Javascript к текстовому файлу?
     
  17. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Если Вы про оформление - JavaScript я обозначил только для красоты, а так это фрагмент регулярки.
     
  18. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    А что такое «\v» ? Нашёл, что это соотвествует символу вертикальной табуляции (U+000B). И не понял.
     
  19. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Я всегда использовал его в качестве любого переноса строк. По крайней мере под эту комбинацию попадали обычные переносы строк.
     
    dobrmir нравится это.
  20. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    А что в коде \v{2}[^\v]+[^\v\.:\-]\v{2} выполняет роль любых символов в строке?
     
  21. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    учи регулярки...
     
    dobrmir нравится это.
  22. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    [^\v] - любой символ, кроме вертикальной табуляции
     
    dobrmir нравится это.
  23. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Прошу подсказать, как модернизировать регулярку наилучшим образом, чтобы она убирала нумерацию страниц также в файлах, как в примере?
    Пароль на архив 12345
     
  24. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    Стал делать это так в начале.
    Код (Text):
    1. //Это
    2. (.) ($)
    3. //заменяю на это
    4. $1$2