いつものようによろしくお願いします。
正規表現に慣れようとしていますが、URLの一致に問題があります。
URLの例を次に示します。
www.examplesite.com/dir/2012/06/19/title-of-some-story/FAQKZjC3veXSalP9zxFgZP/htmlpage.html
これが私の正規表現の内訳です:
[site]/[dir]*?/[year]/[month]/[day]/[storyTitle]?/[id]/htmlpage.html
これ[id]
は22文字の長さの文字列で、大文字または小文字、および数字を使用できます。ただし、URLからそれを抽出したくありません。明確にするだけ
ここで、このURLから2つの値を抽出する必要があります。
まず、dirsを抽出する必要があります。ただし、[dir]
はオプションですが、必要な数だけ指定することもできます。言い換えると、そのパラメータはそこにないか、dir1/dir2/dir3
..etcである可能性があります。だから、私の最初の例をやめます:
www.examplesite.com/dir1/dir2/dir3/2012/06/19/title-of-some-story/FAQKZjC3veXSalP9zxFgZP/htmlpage.html
dir1/dir2/dir3
ここで、dirがすべて小文字の単一の単語である文字列である場所を抽出する必要があります(つまり、sports / mlb / games)。dirには数字はなく、例としてのみ使用しています。
しかし、この有効なURLの例では、次のようになります。
www.examplesite.com/2012/06/19/title-of-some-story/FAQKZjC3veXSalP9zxFgZP/htmlpage.html
ない[dir]
ので何も抽出しません。したがって、[dir]
はオプションです
次に、上記のようにオプションである[storyTitle]
場所を抽出する必要がありますが、存在する場合は1つしか存在できません。[storyTitle]
[dir]
storyTitle
だから私の前の例から離れて
www.examplesite.com/dir/2012/06/19/title-of-some-story/FAQKZjC3veXSalP9zxFgZP/htmlpage.html
'title-of-some-story'
ストーリーのタイトルが常に小文字であるダッシュで区切られた文字列である場所を抽出する必要がある場合に有効です。以下の例も有効です。
www.examplesite.com/dir/2012/06/19/FAQKZjC3veXSalP9zxFgZP/htmlpage.html
上記の例では、[storyTitle]
このようにオプションにすることはありません
最後に、念のため、a[dir]
とaのないURL[storyTitle]
も有効です。例:
www.examplesite.com/2012/06/19/FAQKZjC3veXSalP9zxFgZP/htmlpage.html
有効なURLです。どんな入力でも参考になると思います。