У меня есть аккаунт на Newspapers.com. Синтаксис для ручной загрузки изображения использует пример с идентификатором 999:

https://www.newspapers.com/download/image/?type=jpg&id=999

Но если вы попытаетесь вручную загрузить изображение, не используя специальное программное обеспечение, вы получите неверный URL:

https://www.newspapers.com/image/999/?

Вторая ссылка не работает. Это должно быть изменено на макет первого. Как изменить вторую строку, чтобы включить информацию из первой строки в Notepad++?

Иногда URL, который нужно изменить, содержит дополнительную информацию в конце. Например:

https://www.newspapers.com/image/999/?terms=randomletters или https://www.newspapers.com/image/999/?terms=randomnumbers

Как сделать так, чтобы код удалял все после части /999?

2 ответа2

0
  • Ctrl+H
  • Найдите что: https://www.newspapers.com/\K(image)/(\d+)(/\?)\S*
  • Заменить на: download/$1$3type=jpg&id=$2
  • проверить обернуть
  • проверьте регулярное выражение
  • НЕ ПРОВЕРИТЬ . matches newline
  • Заменить все

Объяснение:

https://www.newspapers.com/ : literally
\K                          : forget all we have seen until this position
(image)                     : group 1, literally "image"
/                           : a slash
(\d+)                       : group 2, 1 or more digits (ie. the id)
(/\?)                       : group 3, a slash and a question mark
\S*                         : 0 or more non space character

Замена:

download/       : literally "download/"
$1              : content of group 1, (ie. image)
$3              : content of group 3, "/?"
type=jpg&id=    : literally
$2              : content of group 2, (ie. the id)

вход:

https://www.newspapers.com/image/999/?
https://www.newspapers.com/image/999/?terms=randomletters 
https://www.newspapers.com/image/999/?terms=123456

Результат:

https://www.newspapers.com/download/image/?type=jpg&id=999
https://www.newspapers.com/download/image/?type=jpg&id=999 
https://www.newspapers.com/download/image/?type=jpg&id=999
0
  • Запустить блокнот ++
  • Вставьте ссылки, которые вы хотите исправить
  • Откройте заменяющий диалог с помощью Ctrl + H
  • Установить Find what ^(.*?)(\d+)(\D*)$
  • Установить replace with на https://www.newspapers.com/download/image/?type=jpg&id=\2
  • Включить режим поиска regular expression
  • нажмите replace all

Готово. Как это работает: Единственный идентификатор, который у нас есть, это группа цифр. Поэтому мы берем всю строку с помощью регулярного выражения и фиксируем цифры во второй группе захвата. Затем мы можем заменить всю строку на фиксированную, которая, как мы знаем, работает, вставляя цифры там, где они нужны.

Если вы хотите немного поиграть с этим, я настоятельно рекомендую regex101.com.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .