Postgresql - 正则表达式使用潜在引号分割 csv 行

2023-12-15

我想在 postgres 中拆分代表 csv 行的列。此文本行中的字段由竖线分隔,有时用引号括起来,有时不括起来。此外,我们还可以转义字符。

field1|"field2"|field3|"22 \" lcd \| screen "

是否有正则表达式来分割此列(即使用 regexp_split_to_array(....)?)


与正则表达式无关,但它有效

create or replace function split_csv(
  line text,
  delim_char char(1) = ',',
  quote_char char(1) = '"')
returns setof text[] immutable language plpythonu as $$
  import csv
  return csv.reader(line.splitlines(), quotechar=quote_char, delimiter=delim_char, skipinitialspace=True, escapechar='\\')
$$;

select *, x[4] from split_csv('field1|"field2"|field3|"22 \" lcd \| screen "'||E'\n'||'a|b', delim_char := '|') as x;


╔══════════════════════════════════════════════╤════════════════════╗
║                      x                       │         x          ║
╠══════════════════════════════════════════════╪════════════════════╣
║ {field1,field2,field3,"22 \" lcd | screen "} │ 22 " lcd | screen  ║
║ {a,b}                                        │ ░░░░               ║
╚══════════════════════════════════════════════╧════════════════════╝
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Postgresql - 正则表达式使用潜在引号分割 csv 行 的相关文章

  • PostGIS Homebrew 安装引用旧路径?

    我在 OS X Mountain Lion 上升级并随后安装了 PostGIS 和 PostgreSQL 当尝试使用 PostGIS 扩展时 我收到以下错误 ERROR could not open extension control fi
  • 强制 DataMapper 断开与 postgresql 的连接

    我有一个测试 正在 postgresql 中创建和销毁多个数据库 为了能够删除数据库 我需要告诉 DataMapper 断开连接 我似乎找不到任何有关如何执行此操作的文档 DataMapper Adapters PostgresAdapte
  • CREATE VIEW 指定的列名多于列

    如果我在 PostgreSQL 9 4 8 中运行以下语句 我会收到以下错误消息 CREATE VIEW 指定的列名多于列 但为什么 没有f1返回一个包含 5 列的表格 不应该v1也有 5 列吗 另外 如果我从第一个中删除演员阵容SELEC
  • 如何在postgresql中查找具有特定列的表

    我正在使用 PostgreSQL 9 1 我有一个表的列名 是否可以找到具有此列的表 如果是这样 怎么办 你也可以做 select table name from information schema columns where colum
  • postgres/npgsql 中参数赋值的符号 (@) 与冒号 (:) 之间的区别

    我正在尝试搜索这个 但是使用符号几乎不可能获得结果 这两者之间有区别吗 例如被放入 C 中的查询字符串中 string strCmd SELECT FROM MyFunction user id action date vs string
  • SQL:每天选择最接近特定时间的一条记录

    我有一张表存储某个时间点的值 CREATE TABLE values value DECIMAL datetime DATETIME 每一天可能有多个值 也可能某一天只有一个值 现在我想获取给定时间跨度 例如一个月 内最接近一天中给定时间的
  • 检查 SELECT 子句中的另一个表中是否存在某个值

    我想查询 table1 中的名称 并查找 table2 中是否存在名称 我有以下查询 但它似乎不起作用 有什么建议我做错了什么吗 select A name CASE WHEN A name in select B name in tabl
  • 在电话字段的前 3 个字符(区号)上创建索引?

    我有一个 Postgres 表 其中电话字段存储为varchar 10 但我们经常搜索区号 例如 select from bus t where bus phone like 555 我想创建一个索引来促进这些搜索 但在尝试时出现错误 CR
  • Gorm 总是返回带有 nil 值的结构

    我正在使用 Gorm 构建 Go Web API 作为 Amazon RDS 中 Postgresql 数据库的 ORM 问题是 Gorm 总是返回一片结构 其值全部为零 尽管数据库已经填充了数据 切片中的结构体数量是否合适取决于LIMIT
  • 如何查找 PostgreSQL 数据库的上次更新时间?

    我正在使用一个批量更新的 postgreSQL 数据库 我需要知道数据库 或数据库中的表 上次更新或修改的时间 两者都可以 我看到 postgreSQL 论坛上有人建议使用日志记录并查询日志 这对我不起作用 因为我无法控制客户端代码库 你可
  • 如何使用PostGIS将多边形数据转换为线段

    我在 PostgreSQL PostGIS 中有一个多边形数据表 现在我需要将此多边形数据转换为其相应的线段 谁能告诉我如何使用 PostGIS 查询进行转换 提前致谢 一般来说 将多边形转换为线可能并不简单 因为没有一对一的映射 http
  • Google Cloud SQL - Postgresql 存储不断增长

    我最近开始修补 Google Cloud SQL PostgreSQL 我创建了一个空数据库 在 4 5 天的时间里 其存储使用量已增长到超过 20GB 它一直在上升 但数据库中没有数据 它甚至没有被使用 有谁知道会发生什么以及如何阻止它
  • 如何在不运行 PostgreSQL 服务器的情况下初始化 PostgreSQL 数据库

    在初始化脚本中 我想初始化 PostgreSQL 目录 但在此阶段不需要 也不希望 正在运行的 PostgreSQL 服务器 如果我只是创建集群 作为用户postgres initdb D 但是 我还需要创建 PostgreSQL 角色 创
  • postgreSql 中特定时间后表更新

    我已经在 postgres 中创建了表 现在我想在特定时间 例如 1 小时 后更新一行 我看到很多问题 例如 https dba stackexchange com questions 56424 column auto updated a
  • 在 PostgreSQL 中使用月份名称排序

    我有一个表 其中有一个字段 Month Name 它包含月份的名称 我想按月份名称排序 不是按字母顺序 而是按实际顺序 例如一月 二月等 如何使用 PostgreSQL 实现此操作 有什么方法可以将月份名称转换为其数值吗 id billed
  • PESSIMISTIC_WRITE 是否锁定整个表?

    只是为了确保我正确理解事情是如何运作的 If I do em lock employee LockModeType PESSIMISTIC WRITE 它会仅阻止该实体吗 employee 或整个表Employees 如果重要的话 我正在谈
  • 对 CSV 文件中的列进行分组并连接另一列的值

    我刚刚开始使用 PowerShell 在任何地方都找不到这个问题的答案 尝试编写一个脚本来导入 CSV 文件并搜索该文件以查看是否有任何名称相同 如果名称相同 我想将所有这些值写在同一行上 并且只显示名称一次 例如 Name Number
  • 检查 postgres 复制状态

    有人可以建议检查 postgresql 复制状态的步骤以及如何确定复制是否未正确进行吗 我们在 pgsql9 0 和 pgsql9 4 中使用流复制 我通常使用以下 SQL 查询来检查 Postgres v11 的状态 关于主人 selec
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 比较两个 postgres 转储文件

    如何比较 postgres 转储文件 我有两个转储文件 dump1 和 dump2 我想比较这两个转储文件 任何帮助将不胜感激 谢谢 如果使用 Windows 则可以使用 Beyond Compare 如果使用 linux fedora 则

随机推荐

  • 将 Json 文件内容保存到 python/pandas 中的 CSV 文件

    如何将 数据 信息放入最后所示的 csv 表中 以及正确的 标头 以便源服务器不会让我以为我正在抓取数据 到目前为止我写的代码如下 import requests json headers User Agent Mozilla 5 0 da
  • 令人困惑的宏和枚举定义

    我正在浏览一些 Route netlink 源代码 我想弄清楚 RTNLGRP NEIGH 的值是多少 Source http lxr free electrons com source include linux rtnetlink h
  • 使用 OpenGLES 抗锯齿去除绳索的锯齿状边缘

    我已经实现了绳索 其中我使用 Revolute 关节连接动态 b2bodied 现在我成功创建了这条绳索 但我的绳索看起来不光滑 我希望它们像丝带一样光滑 任何对此有想法的人 我发现它可以通过 openGLES 使用抗锯齿来实现 但仍然不知
  • PHP SimpleXML 大文件没有额外的内存使用

    在每一篇有关 SimpleXML 性能和内存使用的文章中 都会提到所有解析的内容都存储在内存中 处理大文件将导致大量的内存使用 但最近我发现使用 SimpleXML 处理大文件不会导致大量内存使用 甚至几乎不会导致内存使用 有我的测试脚本
  • 删除 Azure 资源组中年龄超过 x 天的所有资源

    我尝试在资源组 python api 中的资源上 扩展 creationTime 这样我就可以找到它的年龄 如果 gt max age days 我就会删除资源组中的资源 但creationTime似乎在资源上不可用 是否有另一种方法可以根
  • 用多种颜色为轴刻度文本着色

    我正在尝试绘制一个heatmap using R s plotly包 我希望为 y 轴刻度文本的特定标签设置特定的颜色 这是一个示例数据集 set seed 1 df lt reshape2 melt matrix rnorm 100 10
  • ASIO 示例代码在应该之前关闭套接字

    我需要一个使用 ASIO 的并行同步 TCP 解决方案 我正在尝试从这些示例中获取示例代码 https github com jvillasante asio network programming cookbook tree master
  • Java 中的检查异常与非检查异常

    我在理解之间的差异时遇到一些问题checked and uncheckedJava 中的异常 首先 checked异常应该在编译时查找异常 不同来源提供的示例引用了数据库连接 文件处理等其中一些 而unchecked异常应该查找程序员的错误
  • 如何在非 UWP C# 项目中访问 Windows.Gaming.Input?

    我见过一些在 C 控制台应用程序中使用 Windows Gaming Input 的示例 但是否也可以在非 UWP C 项目中访问它 Thanks 我已经通过执行以下操作成功做到了这一点 确保 VisualStudio 未运行 打开你的项目
  • Magento - 显示产品所属的类别

    我使用下面的代码在我的产品页面上显示产品所属的类别 但我经营相同产品的多商店 它还显示其他网站的类别 如何只显示我正在访问的网站的类别 a href a
  • Jquery load() 一个包含 JavaScript 的 html 文件

    我有一个很大的困境 我想加载一个 html文件包含 javascript google 地图 代码来渲染其中的 div maps html 看起来像这样
  • Rails Postgres 查询,仅选择出现在所有搜索参数中且具有关联的项目

    我正在寻找基于一些用户选择参数创建一个 Postgres 查询 用户将选择商店以及开始和结束年份 提交后 我只想显示仅存在于所选所有年份的商品的平均价格 例如 用户选择开始日期为 2014 年 结束日期为 2018 年 项目香蕉在所有这些年
  • 在Java中缩短字符串

    我需要将 ABC123 等 6 个字符的字符串缩短为唯一的 4 个字符的字符串 它必须是可重复的 以便输入字符串始终生成相同的输出字符串 有谁有任何理想如何做到这一点 不可能执行从 6 个字符的字符串到 4 个字符的字符串的完全唯一的映射
  • 如何在 C 中以十六进制字节格式打印浮点数?

    我想查看 IEEE754 格式表示形式的浮点值 3 14159265 于是写了这段测试代码 include
  • 计算给定日期范围内星期一的数量

    给定一个日期范围 我需要知道该范围内有多少个星期一 或星期二 星期三等 我目前正在使用 C 工作 尝试这个 static int CountDays DayOfWeek day DateTime start DateTime end Tim
  • 获取Python中内置函数的参数(arg)数量

    我为 Python 和文档中的自定义表编写了自己的 c 模块我需要运行时内置函数的参数数量 Python 2 中有类似的函数检查 getargspec或 Python 3 中的函数 例如检查签名它支持普通的 Python 函数 但不支持内置
  • 如何在 Internet Explorer 浏览器的 JavaScript 中修复数组 indexOf()

    如果您使用过 JavaScript 您就会知道 Internet Explorer 不会为 Array prototype indexOf 实现 ECMAScript 函数 包括 Internet Explorer 8 这不是一个大问题 因
  • 在 XAML 中绑定到 WPF DataGridCell 内容时出现问题

    我使用以下帖子来实现绑定到动态对象列表的数据网格 将 DynamicObject 绑定到 DataGrid 并自动生成列 ITypedList 方法 GetItemProperties 工作正常 显示一个网格 其中包含我描述的所有列 我使用
  • MVC 在 ModelState.IsValid = false 上设置 Html.DropdownList

    这是我一直困惑的问题 在保持代码可维护的同时 最好的方法是什么 下面的代码为支付网关表单设置了月份和年份的列表 然后将它们分配给类型的变量List
  • Postgresql - 正则表达式使用潜在引号分割 csv 行

    我想在 postgres 中拆分代表 csv 行的列 此文本行中的字段由竖线分隔 有时用引号括起来 有时不括起来 此外 我们还可以转义字符 field1 field2 field3 22 lcd screen 是否有正则表达式来分割此列 即