質問: postgres,prestoどちらかで良いのですが、URLから数字の部分だけを抜き出してくるクエリはどうすれば良いのでしょうか、、 例えば、https://teratail.com/questions/0002/といったURLだとどのようにすれば0002だけを抽出できるでしょうか
回答: 文字列から数字だけ抜き出す=正規表現は、最早定番です。 ちょっと捻りを加えたパターンもアレンジしてみました。 postgres ``` select substring(url from '[0-9]+') -- 正規表現 , translate(url, translate(url ,'0123456789', ''), '') -- 数字を消した文字列を利用して、数字以外を消す from unnest('{https://teratail.com/questions/0002/}'::text[]) as w(url) ``` 尚、何れも数値だけを抽出するもので区切りなどは考慮してません。 正規表現は1以上の連続した数字で、左から見て最初のものを取り出し、 正規表現でないものは数字全てを取り出します。