URL 경로를 제거하고 URL의 마지막 조각을 유지하는 정규식

URL 경로를 제거하고 URL의 마지막 조각을 유지하는 정규식

다양한 HTML 태그와 여러 img src URL이 포함된 파일이 있습니다.

<img src="https://www.example.com/parent-folder-1/subfolder-1/image1.png">
<img src="https://www.example.com/parent-folder-2/subfolder-2/image2.png">
...
<img src="https://www.example.com/parent-folder-100/subfolder-100/image100.png">

단지 아이디어를 얻기 위해 언급한 것입니다 parent-folder-N. 이러한 URL에는 특정 패턴이 없습니다. 모두 다른 하위 폴더를 가질 수 있지만 소스와 동일한 URL로 시작합니다.https://www.example.com/

https://www.example.com/parent-folder-N/subfolder-N/imageN.png모든 언급을 로컬 경로로 바꾸려고 하므로 imageN.png모두 다음과 같습니다.

<img src="image1.png">

<img src="image2.png">
...
<img src="image100.png">

따라서 기본적으로 전체 URL 경로를 살펴보고 마지막 슬러그인 imageN.png.

예를 들어, 이것은 Regex를 사용하여 https://i.imgur.com/u9JgF6B.png찾아서 바꾸려고 하는 URL의 일부 이므로 [nothing]결국 슬러그만 남게 됩니다 imageN.png.

이 작업을 수행하기 위해 정규식을 사용할 수 있습니까?

추신: 이와 같은 정규식을 사용해 보았 더니 example.com과 일치했지만 마지막 경로 앞의 URL을 ^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]example+)\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$일치시키는 방법을 모르겠습니다.example.com/.../imageN.png

PPS: 이미지는 항상 확장자를 가질 수 있습니다 .png..jpg

답변1

난 당신이 무슨 뜻인지 모르겠어요정규 표현식 사용하지만 이를 수행하는 방법은 다음과 같습니다 sed.

sed 's!https://www.example.com/.*/!!' file.html

또는 (링크에 문자가 없다고 가정 !):

sed '/https:\/\/www.example.com\//{y@/@|@;s/".*|/"/}' test

html 파일에 변경 사항을 적용하려면 -i옵션( 에서 사용 가능 )을 사용하십시오 .Gnu sed


그리고 perl:

perl -pe 's@(?:https://www.example.com/.*/)(.*[.])(png|jpg)@$1$2@' test.html

perl-i파일에서 직접 편집을 활성화하는 옵션이 있습니다 .

답변2

현재로서는 정규 표현식 전문가는 아니지만 다음과 같이 하면 작동할 것입니다.

(http).*\/


설명하다

(http)문자열 "http"와 일치합니다.

.*다음까지 임의의 문자를 0회 이상 일치시킵니다.

\/마지막 슬래시와 일치합니다.

관련 정보