トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

2-21 /で囲まれた最後の文字列を検索

正規表現パズル

行ごとで、
/で囲まれた最後の文字列を検索する。

検索前


検索後


対象データ

ttp://oraclesqlpuzzle/8-5.html
ttp://oraclesqlpuzzle/mysql/mysql-2-3-1.html
ttp://oraclesqlpuzzle/postgresql/postgresql-3-1.html
ttp://oraclesqlpuzzle/regex/regex-2-6.html
ttp://oraclesqlpuzzle/bool/bool-2-4.html
ttp://oraclesqlpuzzle/db2/db2-8-1.html


正規表現

(?<=/)(?=[^/]*/[^/]*$).+?(?=/)

別解1

(?<=/)[^/]+(?=/(?!.*/))

別解2

(?<=/)(?=.*/)(?!.*/.*/)[^/]+


解説

別解1では、
肯定先読みの中で否定先読みを使ってます。

別解2では、
前方にあるスラッシュの数は1以上である。かつ、前方にあるスラッシュの数は2以上ではない。
⇔
前方にあるスラッシュの数は1である。

という連立不等式をふまえた同値命題を使ってます。