Notepad ++ удалить весь текст, не связанный с регулярным выражением - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть большой список URL-адресов, каждый из которых содержит уникальную числовую строку, строка находится между / и ?. Я хотел бы удалить весь другой текст из notepad ++, который не является этими строками.например, www.website.com/dsw/fv3n24nv1e4121v/123456789012?fwe=32432fdwe23f3 будет выглядеть как 123456789012

Я понял, что следующее регулярное выражение \b\d{12}\b даст мне 12 цифр, теперь мне просто нужно удалить всю информацию, которая выпадает каждыйбоковая сторона.Я посмотрел и нашел несколько постов, которые предлагают заменить на \t$1, $1\n, $1 и /1, но все они делают точную противоположность того, что я хочу, и просто удаляют 12-значную строку.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018
  • Ctrl + H
  • Найти что: ^.*/([^?]+).*$
  • Заменить на: $1
  • check Обтекание
  • check Регулярное выражение
  • UNCHECK . matches newline
  • Заменить все

Объяснение:

^               # beginning of line
    .*          # 0 or more any character but newline
    /           # a slash
    ([^?\r\n]+) # group 1, 1 or more any character that is not ? or line break
    .*          # 0 or more any character but newline
$               # end of line

Результат для данного примера:

123456789012
0 голосов
/ 30 ноября 2018

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

^[^ ]*\/|\?[^ ]*$

Демонстрация

Объяснение:

  • ^[^ ]*\/ -> Совпадает с любым ожидаемым пробелом от начала строки до тех пор, пока не будет найдено /
  • \?[^ ]*$ -> Аналогично, это соответствует чему угодно, кроме пробела, начиная с ? доконец ввода.
...