정규식 질문입니다.

정규식 질문입니다.

QA

정규식 질문입니다.

답변 5

본문

/data/editor/2111/145ac6774604ae8d31c392ba622f3473_040059364307.jpg

 

여기에서

/data/editor/2111/ 를 지우고 싶습니다

 

다만 2111은 날짜라서 매번 글자가 달라지는데요

/ 이게 특수문자라서 어떻게 진행해야하는지 잘 이해를 못하겠습니다ㅠㅠ

이 질문에 댓글 쓰기 :

답변 5

* basename(), pathinfo() 등의 함수 이용이 더 편합니다만…

(패턴 다양한데) 그냥 간단하게 아래처럼 치환(제거)하면 됩니다.


$str = '/data/editor/2111/145ac6774604ae8d31c392ba622f3473_040059364307.jpg';
echo preg_replace('#/data/editor/\d+/#', '', $str);
// 결과 145ac6774604ae8d31c392ba622f3473_040059364307.jpg

파일명만 추출하고 싶으신거라면 굳이 정규식을 사용하지 않고 php 기준으로 explode 구분자를 "/'로 하여서 마지막 배열 값을 얻어내도 됩니다.

 

정규식에서 들어가는 문자는 \문자를 앞에 붙이시면 문자열로 인식하게 할 수 있습니다

\/ 이런식으로 활용하시면 됩니다

https://www.php.net/manual/en/function.basename.php

참고하세요.

만일 저 같으면...

정규표현식 보다는 뒤에서부터 strrpos 로 문자열을 추적하여 / 의 위치를 찾아 더하기 1을 해주고

substr 로 추출해 내는 것이 가장 간명해 보입니다만...

 


<?php
$url = "/data/editor/2111/145ac6774604ae8d31c392ba622f3473_040059364307.jpg";
echo substr($url, strrpos($url, "/") + 1);
?>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로