PostgreSQL - 用regexp_split_to_table将单词(len> 1)拆分成行

时间:2017-10-25 16:27:13

标签: regex postgresql

我正在尝试将以下字符串拆分成行,这样每个单词都在自己的行中,但单个字符的单词除外(例如a,i):

"the quick brown fox jumps over a lazy dog"

这是我在SQL Fiddle中一直在搞乱的,但我无法得到正确的结果:

SELECT foo FROM regexp_split_to_table('the quick brown fox jumps over a lazy dog',  
  E'(\\s+)(?=\\w{2,})') AS foo;

结果:

the
quick
brown
fox
jumps
over a
lazy
dog

这几乎是正确的,但由于某种原因,a正在结合使用。我完全无视这一点。

我错过了什么小事?

1 个答案:

答案 0 :(得分:1)

评论中已经提供了一个解决方案:

git log

然而,它没有考虑标点符号。因此,不是通过分隔符拆分字符串,而是使用select regexp_split_to_table('the quick brown fox jumps over a i lazy dog.', '\s+(\w\s+)*'); 函数不能从中提取单词:

regexp_matches()