2012-03-25 5 views
0

처음으로 : 내 나쁜 영어는 유감 스럽지만 ı hope ı는 내 문제를 설명해 줄 것입니다.preg_matc, 바꾸기, 정규식으로 텍스트에서 이미지 가져 오기

ı에는 많은 이미지 이름을 포함하는 값이 있습니다. 이 같은

:이 이미지 이름을 분리해서하는 some.jpganother.pngother.gifsomesome.jpg ....

ı 필요.

some.jpg 
another.png 
other.gif 
somesome.jpg 

ı 검색 중이지만 아직 답변이 충분하지 않습니다.

내 솔루션은 다음과 같습니다

regexp_substr('some.jpganother.pngother.gif', '[a-z0-9/]+.jpg'); 

preg_match_all("@([a-z0-9-]+).(jpg|gif|png)@i",'some.jpganother.pngother.gif',$a); 

당신을 감사합니다.

+4

왜 이러한 이미지 이름이 간격없이 연결되어 있습니까? – Josh

+0

필자 이름을 명확하게 구분하여 값을 적용 할 수 있는지 확인하는 것이 좋습니다. 이것은 regexp 마법을 통한 분리를 개발하고 실행하는 노력을 막을 것입니다. 파일 이름이 "bad.gif.png"이되자 명확한 분리가 불가능해질 수 있습니다. – Daxcode

+2

솔루션에 어떤 문제가 있습니까? 'preg_match_all' 검색은 완벽하게 작동했습니다. – Basti

답변

0

예에서 preg_match_all()이 작동해야한다는 점에 동의하지만, 더 잘 작동해야하는 예제가 있습니다. 확장 전에 파일 이름에있을 수있는 문자를 제한하지 않고 묶음을 캡처하지 않습니다 여분의 물건.

preg_match_all('/.*?\.(?:png|gif|jpe?g)/', 'some.jpganother.pngother.gif', $matches); 
print_r($matches); 

Array 
(
    [0] => Array 
     (
      [0] => some.jpg 
      [1] => another.png 
      [2] => other.gif 
     ) 

)