r - Postgres的查询以按索引选择数组中的值
问题描述
我的数据是这样的字符串:
'湯姆 is a boy.'
or '梅isagirl.'
or '約翰,is,a,boy.'.
而且我想拆分字符串,只选择中文名称。
在 R 中,我可以使用命令
tmp=strsplit(string,[A-z% ])
unlist(lapply(tmp,function(x)x[1]))
然后得到我想要的中文名字。
但在 PostgreSQL
select regexp_split_to_array(string,'[A-z% ]') from db.table
我得到一个数组,如 {'汤姆','','',''},{'梅','','',''},... 我不知道如何选择项目数组。
我尝试使用命令
select regexp_split_to_array(string,'[A-z% ]')[1] from db.table
我得到一个错误。
解决方案
我认为这不regexp_split_to_array
适合您在这里尝试做的事情。相反,用于regexp_replace
有选择地删除所有 ASCII 字符:
SELECT string, regexp_replace(string, '[[:ascii:]~:;,"]+', '', 'g') AS name
FROM yourTable;
演示
请注意,您可能需要调整要删除的字符集,具体取决于您希望string
列中包含的其他非中文字符。这个答案为您提供了一个关于如何在此处进行的一般性建议。
推荐阅读
- php - 如何限制 PHP 在 apache 中的总内存使用量
- javascript - 为什么在 React setState 函数中使用 prevState?
- excel - VBA:将超链接插入电子邮件正文并链接回原始工作簿中的特定单元格
- python - 如何使用 Inline::python 从 perl 访问在 python 中设置的环境变量
- mysql - 一对多部分关联
- python - Instagram 自动化
- typo3 - 打字稿3 8
我正在尝试调整图像大小但不起作用。
<f:image src="{shoe.imageOne.uid}" width="400c" height="525c" treatIdAsReference="1" alt="{shoe.name}" />
我在文档和其他地
- azure - Azure Function App 链接授权
- python - 在 pytest 中获取测试执行的唯一 ID
- c# - 减小视频 Xamarin 表单的大小