我有一个人的列表,有些人的名字中间有一个名字,有些人只有一个名字。我想创建一个正则表达式,其第一个组只匹配第一个名称。
一些例子:
如果我只是想删除尾随的中间首字母,那么使用(.*)( .)
之类的东西会很容易,但我无法确定中间的首字母将始终存在。我在Postgres这样做,以防万一。
答案 0 :(得分:0)
使用case
和字符串操作很容易做到:
select (case when firstname like '% _' then left(firstname, length(firstname) - 2)
else firstname
end) as firstname
答案 1 :(得分:0)
试试这个:
SELECT regexp_replace('Lisa Ann t', '\\s\\S+$', '');