回答編集履歴

2 追記

sazi

sazi score 14612

2017/09/13 00:59  投稿

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

sazi

sazi score 14612

2017/09/13 00:52  投稿

文字列から数字だけ抜き出す=正規表現は、最早定番です。
ちょっと捻りを加えたパターンもアレンジしてみました。
postgres  
---  
```SQL
select substring(url from '[0-9]+')                        -- 正規表現
    , translate(url, translate(url ,'0123456789', ''), '') -- 数字を消した文字列を利用して、数字以外を消す
from unnest('{https://teratail.com/questions/0002/}'::text[]) as w(url)
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る