在PostgreSQL中用大写字母分隔单词

时间:2014-11-10 11:35:59

标签: sql postgresql postgresql-9.3

我有适用于MS SQL的sene Split words with a capital letter in sql,但我想知道如何使用PostgreSQL实现相同的目标

基本上我获得FirstNameValue等值,但我需要它First Name Value

不幸的是,我不知道从哪里开始。我得到了以下内容并立即被卡住了

SELECT REGEXP_REPLACE('ThoMasTest', '[^ ][A-Z].', ' ')

ThoMasTest等字符串的结果应为Tho Mas Test

由于

1 个答案:

答案 0 :(得分:5)

这应该可以解决问题:

select regexp_replace('ThoMasTest', '([a-z])([A-Z])', '\1 \2','g');

表达式匹配彼此相邻的两个字符,每个字符在其自己的组中:

  1. [a-z]匹配小写字母。
  2. [A-Z]找到大写字母
  3. 因此,如果一个小写,如果紧跟一个大写字母,则在它们之间插入一个空格。

    全球'g'