2012-03-18 5 views
2

文字列から年と月を取得する正規表現を手伝ってもらえますか?年/月の部分文字列を検索する正規表現

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

私は正規表現が2012/02を返すしたいと思います。ここでは

は、例えば、テキスト文字列です。

+0

あなたはどのソフトウェアを使用していますか?何を試しましたか?あなたは何を理解していますか? – alexis

+0

正規表現についてよく知らないそれを読もうとしましたが、私にとっては非常に複雑に思えました。ここの誰かが私を助けてくれることを願っていました。 – jens

+0

Alexis、私は正規表現の仕組みを理解していません。私にナンセンスのように見えます。 問題がある場合、私はPHPを使用しています。 – jens

答えて

2

この正規表現パターンは、何が必要一致します

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

スラッシュ '(?<= \ /)\ d {4} \/d {2}(?= \ /)'をエスケープすることを忘れないでください。 – inhan

+0

ありがとう!早期に働くことはできませんでしたが、エスケープして解決しました。 – jens

+0

申し訳ありませんが、私は10進数のものを忘れました:) – 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) * JOKES ** – Lix

+0

ハハ! 1つupvote - 誰かがあきらめた;) – Lix

関連する問題