/^www\.example\.com\/([^\/]+\/)*([^\/]+)\/$/
これは何をしますか?
- ドメインの通常のテキストに一致します。必要に応じてこれを調整します。
- 任意の数のディレクトリに一致します。各ディレクトリは、スラッシュ以外の文字とそれに続くスラッシュで構成されます。
- スラッシュ以外の文字列に一致します。
- 入力の末尾のスラッシュに一致するため、ファイルが削除されます (ディレクトリのみがスラッシュで終わるため)。
Perl で実装:
[ghoti@pc ~] cat perltest
#!/usr/local/bin/perl
@test = (
'www.example.com/path/to/file.html',
'www.example.com/match/',
'www.example.com/pages/match/',
'www.example.com/pages/widgets/thingy/',
'www.example.com/foo/bar/baz/',
);
foreach (@test) {
$_ =~ m/^www\.example\.com\/([^\/]+\/)*([^\/]+)\/$/i;
printf(">> %-50s\t%s\n", $_, $2);
}
[ghoti@pc ~] ./perltest
>> www.example.com/path/to/file.html
>> www.example.com/match/ match
>> www.example.com/pages/match/ match
>> www.example.com/pages/widgets/thingy/ thingy
>> www.example.com/foo/bar/baz/ baz
[ghoti@pc ~]