Warning: session_start(): open(/home/var/php/5/s/sess_5sjmhpetjk9gsu00dhb707dsb2, O_RDWR) failed: No such file or directory (2) in /home/users/web07/2/1/0219112/phyokin/devlog/controllers/controller.php on line 15

Warning: session_start(): Failed to read session data: files (path: 2;/home/var/php) in /home/users/web07/2/1/0219112/phyokin/devlog/controllers/controller.php on line 15
devlog
MW211 EXIT

devlog
PostgreSQL/regexp_replace()の最短一致
2013年06月14日
「regexp_replace()」では基本最長一致で置換される。
「.*」や「.+」の場合、最短一致にするには末尾に「?」を付ければいいようだ。

例えば、LF改行で特定の行を置換するにはこんな感じとなる。
┌──────────────────────────────────────┐
│UPDATE 表 SET 列 = regexp_replace(列,                                       │
│                                  '見出:.*?' || chr(10),                   │
│                                  '見出:'    || chr(10));                  │
└──────────────────────────────────────┘

例えば、CRLF改行の場合はこう。
┌──────────────────────────────────────┐
│UPDATE 表 SET 列 = regexp_replace(列,                                       │
│                                  '見出:.*?' || chr(13) || chr(10),        │
│                                  '見出:'    || chr(13) || chr(10));       │
└──────────────────────────────────────┘
分類:PostgreSQL