2011-10-27 10 views
0

正規表現はあまりよく分かりませんが、パーシャル変数を正規表現チェックから取得する可能性については疑問があります。正規表現から(部分)変数を取得する方法は?

example.com/dir1/ 
example.com/dir1/val1 
example.com/dir1/val1-val2 

私はDIR1のVAL1val2のを抽出し、式を作成したいと思います:私は、私はパスのこれらの種類を持って

...私が探していますかを説明してみてください。

私の質問は以下のとおりです。

は、私が存在するか、私は3式を記述する必要がない変数のみを抽出することはできますか?私が使用するルールを置けば、私は...

を意味する:example.com/dir1/val1-val2

私はのようなURLを渡すと、私は唯一のDIR1得ることができます。www.example.com/category(DIR1 =カテゴリ)?その後、

URLだった場合:www.example.com/category/car

は、あなたが( '/'、$のURL)を爆発使用することができdir1 = categoryval1 = car

+0

なぜあなたは爆発を使用しないのですか? – stivlo

+0

@stivlo、どのように私は爆発を使用することができますか? URLは多くの文字で細分化することができます(例:example.com/val1-val2/dir1またはexample.com/dir1/dir2/val1_val2など) – Dail

答えて

1

explode("/", $url)は可能な限り簡単です。構造体が可能なよりも複雑な場合は、代わりにpreg_split()を使用して、サブディビジョンとして使用できるすべての文字をリストすることができます。

$urlParts = preg_split('/[_\/-]/', $url); 
+0

preg_splitはうまくいくはずです。ありがとう! – Dail

+0

私はそうでなければ配列の最初の要素が空になる前にそれらの文字をトリムする必要があると思います。 – Dail

+0

$ urlParts = preg_split( '/ [_ \/- ] /'、$ v、-1、PREG_SPLIT_NO_EMPTY);完璧に仕事をする!ありがとうございました。 – Dail

0

を取得します。すべての値を含む配列を取得するには、正規表現を使用してこのような問題を解決するべきではありません。

関連する問題