2012-03-18 3 views
2

정규 표현식을 사용하여 텍스트 문자열에서 연도를 구할 수 있습니까? 내가 2012/02를 반환하는 정규식 싶습니다년/월 하위 문자열을 찾을 정규 표현식

http://www.domain.com/files/images/2012/02/filename.jpg

: 여기

는 예를 들어 텍스트 문자열입니다.

+0

어떤 소프트웨어를 사용하고 있습니까? 너 뭐 해봤 니? 너 이해 하지마? – alexis

+0

정규식에 대해 많이 알지 못합니다. 그것을 읽기 위해 노력했지만 나에게는 매우 복잡해 보였다. 여기 누군가가 나를 도와 주길 바랬다. – jens

+0

Alexis, 나는 정규식이 어떻게 작동하는지 이해하지 못합니다. 나 한테 말도 안돼. PHP가 중요하다면 사용하고 있습니다. – jens

답변

2

이 정규식 패턴은 당신이 필요 일치합니다 :

(?<=\/)\d{4}\/\d{2}(?=\/) 
+2

슬래시를 이스케이프하는 것을 잊지 마라. (? <= \ /) \ d {4} \/d {2} (? = \ /)' – inhan

+0

고마워! 일찍 일할 수는 없었지만 도망치면 해결할 수있었습니다. – jens

+0

미안하지만, 나는 소수를 잊어 버렸어. – inhan

1

당신의 상황과 얼마나 많은 문자열이 변화에 따라 - 당신은 단순히 PHP의 편리한 explode() 함수를 사용하여 총알을 피할 수도 있습니다. -

간단한 데모 ...

$str = 'http://www.domain.com/files/images/2012/02/filename.jpg'; 
print_r(explode("/",$str)); 

반환 조명을하시기 바랍니다 어둡게 :는 "구분"에 따라

Array 
(
    [0] => http: 
    [1] => 
    [2] => www.domain.com 
    [3] => files 
    [4] => images 
    [5] => 2012  // Jack 
    [6] => 02  // Pot! 
    [7] => filename.jpg 
) 

explode() 기능 (docs here가) 문자열을 분할하는 당신이 그것을 제공합니다. 이 예제에서는 / (슬래시) 문자를 사용합니다.

5 번째와 6 번째 색인에서 값을 가져 와서 날짜 값을 가져올 수 있습니다.

+0

아, 그거 생각하지 않았어. 비록 정규식 솔루션을 더 좋아해. – jens

+0

나도 :) 그 예쁜 :)하지만 이것은 대안이다 - 일단 당신이 [정규식에 대한 모든 머리카락을 꺼냈다] (http://stackoverflow.com/a/1732454/558021) * 조크 ** – Lix

+0

하하! 한 upvote - 누군가가 포기;) – Lix

관련 문제