regex - Postgres 函数将单词拆分为具有额外逻辑的数组
问题描述
我一直在玩 psql 并将名称拆分为一个数组,例如:
select string_to_array('joseph jones', ' ');
string_to_array
-----------------
{joseph,jones}
这完全符合我的预期。
但是,我的数据集包含许多前面带有“o”的姓氏。
select string_to_array('joseph o carroll', ' ');
string_to_array
-----------------
{joseph,o,carroll}
有什么办法可以添加一些额外的逻辑,以便如果一个单词前面有一个“o”,那么它会被捆绑到下一个单词中?
所以joseph o carroll
会回来{joseph,o carroll}
解决方案
通过使用正则表达式,我想我找到了解决方案:
select regexp_split_to_array('joseph o jones','(?<!o)(\s+)');
推荐阅读
- asp.net - 如何通过字符串名称创建 DataSet 的实例?
- sql - 如何连接数据库中的实体
- python - 如何在 PyPlot 中 plot.show() 日期时间格式化数据“mm-dd-yy hh:mm:ss”?
- python - 优化对大量数据的搜索和插入操作
- spring - neo4j 存储用户输入决策树的方法
- powershell - 可以做到吗?根据使用 Powershell 的时间删除大量文件
- angular - 无法在我的 iOS 原生脚本插件中调用 MQMapView 的 initWithFrameStyleURL 方法
- c - TCP-IP 套接字 C:尝试连接到服务器套接字时出现错误地址错误
- batch-file - WinSCP:如何在不解析 WinSCP 脚本上的双引号的情况下输入带空格的脚本参数?
- java - Java jTable添加带有base64图像的html img标签