Есть ли способ удалить все символы перед словом GET? - PullRequest
1 голос
/ 16 апреля 2020

Я использую возвышенный текст на windows, и у меня есть что-то вроде этого.

race-position-18374327498.png:1 GET   https://google.com/example.png
race-position-453452.png:1 GET https://google.com/example1.png
race-position-343532.png:1 GET  https://google.com/example.png
race-position-4543646554764576574564.png: GET https://google.com/example22.png
race-position-5765865865843655.png: GET https://google.com/example434.png

Я хочу избавиться от всего до слова GET , поэтому я хочу вывод вот так.

https://google.com/example.png
https://google.com/example1.png
https://google.com/example.png
https://google.com/example22.png
https://google.com/example434.png

Есть ли способ сделать это в любом программном обеспечении? Помоги мне. Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 16 апреля 2020

Для предоставленного вами набора данных, который включает в себя строки без GET, просто find + replace regex

Вы можете получить это, используя «Найти», а затем «Заменить» вверху меню или нажав Ctrl + H в любое время

  1. НАЙТИ .*\shttp

  2. ЗАМЕНА http

Таким образом, он заменяет любой символ, пока не найдет (whitespace)http совпадение

пробел - это проверка работоспособности, поскольку на левой стороне может быть «http», но маловероятно, что после http будет пробел.

РЕДАКТИРОВАТЬ

@ Комментарий Роберта Меннела заставил меня осознать, что я не знаю, может ли левая часть содержать пробелы, так что здесь есть улучшенное регулярное выражение для обработки этого

Для ясности, обе версии работают с набором данных OP, улучшение, скорее всего, будет лучше, если более простое регулярное выражение не будет работать с полным фактическим набором данных сейчас или в будущем:)

Не стесняйтесь используйте любой другой, я оставил другой чуть выше.

НАЙТИ ^(.*)\shttp([^\s]*)$

ЗАМЕНИТЬ http\2

В Regex :

  • . означает любой символ
  • * означает 0-многие
  • \s для пробела
  • ( и ) определяют группы
  • \1, \2 и т. Д., Как вы сами вызываете эти группы
  • ^ само по себе является началом строки
  • [ и ] - группа символов
  • [^ означает группу отрицательных символов (поэтому любой символ, кроме этих)
  • $ - конец строки * 10 87 *

Начало и конец строки просто гарантируют, что каждая строка обрабатывается отдельно, и она обрабатывает пробелы на левой стороне, проверяя, что http не имеет пробелов ПОСЛЕ ТОГО, как ДО конца строки, используя [^\s]*, что означает любое количество непробельных символов.

Использование \2 в замене возвращает весь текст во второй группе ( ) обратно.

Таким образом, он обрабатывает http , https и любые другие символы после этого, и только каждый из них сохранит содержимое в последней правой части каждой строки.

Вы можете использовать еще более ароматные версии, чтобы добиться того же результата, однако в возвышенном текст 3 по крайней мере, инструмент поиска замены уже имеет модификаторы по умолчанию, поэтому . не будет заменять символы новой строки и найдет несколько совпадений, так что это очень простая операция:)

Вот отличная таблица для регулярных выражений в соответствии с возвышенным текстом: https://jdhao.github.io/2019/02/28/sublime_text_regex_cheat_sheet/

1 голос
/ 16 апреля 2020

на самом деле вы хотите удалить все до http части URI. Для этого используйте поле поиска и замены и используйте регулярное выражение для ^.*http и замените его на http, и оно должно удалить их все

^ beginning of line  
.*  
  . any character
  * repeated
http string of `http`

, это будет совпадать с любой строкой, имеющей http в нем (это означает, что он также совместим с https) и всеми символами перед ним в строке и заменит их на http

Документация на веб-сайте NotePad ++ о регулярных выражениях

0 голосов
/ 16 апреля 2020

В Sublime Text вы также можете выбрать текст «GET» и ctrl+D, чтобы выбрать все «GET», а затем просто нажать стрелку вправо, чтобы курсор был в конце слова GET, а затем просто shift+home , Он выберет все содержимое перед GET. И тогда вы можете просто удалить его.

Хотя это не будет полезно для длинных файлов. Но для того, чтобы быстро сделать это для некоторых строк, вы можете использовать его. Это удобно делать.

...