2016-05-25 1 views
0

私は私がしたい出力が正規表現を使用してこのURLからこの出力を達成できますか?

/home/5/test/1/user/[*]/a 
/home/5/test/1/user/[*]/b 
/home/5/test/1/user/[*]/c/[*]/d 
/home/5/test/1/user/[*]/c/[*]/e/[*]/f/[1,2,3,4]/g 
/home/5/test/1/user/[*]/c/[*]/e/[*]/f/[1,2,3,4]/h 
/home/5/test/1/user/[*]/c/[*]/e/[*]/f/[1,2,3,4]/i 

/homeが鍵であり、/5がその値である

/home/5/test/1/user/[*]/[a,b,c/[*]/d,e/[*]/f/[1,2,3,4]/[g,h,i]] 

このURLを持っています。このように私たちはペアを探しています。ペアが見つからない場合は、URLが壊れます。したがって、/testの値は/1で、/userの値は/[*]です。次のスラッシュには開き括弧があり、その中にaがキーであり、その後ろにスラッシュがないので値がなく、文字列が壊れて最初の出力行が得られます。 bも値としては破られませんが、の値は/[*]です。したがって、次の値はe/[*]です。私たちは良いキーとペアの値だけを保持しようとしています。どのようにこれを行うことができるか考え始める前に、私はそれが正規表現でできるかどうか疑問に思っていましたか? \[([\S\s]*)\]を使用すると、閉じ括弧を見つける際に問題が解決する可能性がありますが、これを正規表現で完全に解決できるのでしょうか?もしそうでなければ、私はこれをどのように達成できますか?どんな種類の応答も気に入っています。

+0

明確にするには、 '/ home/5/test/1/user/999/a'、'/home/5/test/1/user/872/c/38/d'、/ home/5/test/1/user/34/c/123/e/456/f/1/gなどのように、 –

+0

はい、あなたはこれを理解していると思います。 – user4381753

+0

異なる組み合わせの形式に似たURLを入力できるはずですが、出力のロジックは上記のようにする必要があります。 – user4381753

答えて

0

私が正しく理解していれば、その後、必要な正規表現は次のとおりです。

/home/5/test/1/user/\d+/[abc]/\d+/[de]/\d+/f/[1-4]/[ghi] 

私はあなたの質問で、まだ少し混乱しているが。たとえば、文字列:/home/5/test/1/user/2/a/3/dは一致する必要がありますか?上の私の正規表現では、あなたが望むものは不明です。

関連する問題