teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2017/09/12 15:59

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -7,4 +7,7 @@
7
7
  select substring(url from '[0-9]+') -- 正規表現
8
8
  , translate(url, translate(url ,'0123456789', ''), '') -- 数字を消した文字列を利用して、数字以外を消す
9
9
  from unnest('{https://teratail.com/questions/0002/}'::text[]) as w(url)
10
- ```
10
+ ```
11
+ 尚、何れも数値だけを抽出するもので区切りなどは考慮してません。
12
+ 正規表現は1以上の連続した数字で、左から見て最初のものを取り出し、
13
+ 正規表現でないものは数字全てを取り出します。

1

修正

2017/09/12 15:59

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,6 +1,8 @@
1
1
  文字列から数字だけ抜き出す=正規表現は、最早定番です。
2
2
  ちょっと捻りを加えたパターンもアレンジしてみました。
3
3
 
4
+ postgres
5
+ ---
4
6
  ```SQL
5
7
  select substring(url from '[0-9]+') -- 正規表現
6
8
  , translate(url, translate(url ,'0123456789', ''), '') -- 数字を消した文字列を利用して、数字以外を消す