Postgres Regex:在模式的最后一次出现和行尾之后提取字符串

Dmytro Sly

请帮助我在最后一次出现Schedule : 和行尾之后提取文本

Lane Closures : Lane one will be closed
Reason : Roadworks are planned
Status : Pending
Schedule : Expect disruption everyday between 20:00 and 06:00 from 5 October 2020 to 9 October 2020
Schedule : Expect disruption everyday between 20:00 and 06:00 from 12 October 2020 to 16 October 2020
Schedule : Expect disruption everyday between 20:00 and 06:00 from 19 October 2020 to 23 October 2020
Schedule : Expect disruption everyday between 20:00 and 06:00 from 26 October 2020 to 31 October 2020
Lanes Closed : There will be one of two lanes closed

在上述情况下,我需要提取 Expect disruption everyday between 20:00 and 06:00 from 26 October 2020 to 31 October 2020

到目前为止,我只想到以下几点:

(?<=Schedule : ).*(?![\s\S]*Schedule)

但这在Postgres中不起作用。它返回错误:invalid regular expression: invalid escape \ sequence

我也试图取代\s,并\S[:space:]^[:space:]为每个Postgres的文档,但它也不起作用

提前致谢。

维克多·史翠比维

由于.PostgreSQL正则表达式中的a匹配包括换行符char在内的任何char,因此您需要进行两个更改:

  • 第一个.*应该替换[^\r\n]+为匹配除公共换行符以外的任何其他字符
  • [\s\S]在先行应该仅仅被替换.

您可以使用

(?<=Schedule : )[^\r\n]+(?!.*Schedule)

参见在线演示

SELECT REGEXP_MATCHES(
    E'Lane Closures : Lane one will be closed\nReason : Roadworks are planned\nStatus : Pending\nSchedule : Expect disruption everyday between 20:00 and 06:00 from 5 October 2020 to 9 October 2020\nSchedule : Expect disruption everyday between 20:00 and 06:00 from 12 October 2020 to 16 October 2020\nSchedule : Expect disruption everyday between 20:00 and 06:00 from 19 October 2020 to 23 October 2020\nSchedule : Expect disruption everyday between 20:00 and 06:00 from 26 October 2020 to 31 October 2020\nLanes Closed : There will be one of two lanes closed', 
    '(?<=Schedule : )[^\r\n]+(?!.*Schedule)', 
    'g') 

输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在第一次出现模式之后并在另一个模式之前提取字符串

来自分类Dev

如何在第一次出现的:和冒号之间提取字符串

来自分类Dev

XSL子字符串-字符串的最后一次出现之后

来自分类Dev

如何在Postgres中提取字符串的未定义长度

来自分类Dev

根据多种模式从Postgres表中获取字符串

来自分类Dev

如何删除字符串的第一次出现和最后一次出现之后的所有行?

来自分类Dev

字符串拆分并获得第一次和最后一次出现

来自分类Dev

Postgres多行字符串和计算

来自分类Dev

与Postgres的连接字符串

来自分类Dev

如何选择出现在postgres中特定单词之后的特定子字符串?

来自分类Dev

如何从向量中提取特定字符串的最后一次出现

来自分类Dev

提取动态变化的字符串的最后一次出现

来自分类Dev

R-获取第一次出现和最后一次出现之间的子字符串

来自分类Dev

如何在一个字符的第一次出现和另一个字符的第一次出现之间提取字符串?

来自分类Dev

javascript替换字符串的最后一次出现

来自分类Dev

查找字符串的最后一次出现

来自分类Dev

Postgres Regex_Replace:在替换字符串中使用模式

来自分类Dev

Postgres:在一次交易中进行截断和复制

来自分类Dev

使用 SQLAlchemy 和 Postgres 一次进行多次插入

来自分类Dev

Postgres模式匹配字符串的中间字母

来自分类Dev

如何在字符串中找到模式最后一次出现的位置,并使用这些位置从另一个字符串中提取子字符串

来自分类Dev

正则表达式模式替换字符串中最后一次出现的模式

来自分类Dev

在最后一段之后从字符串中提取字符

来自分类Dev

使用Postgres Regex搜索返回匹配的子字符串

来自分类Dev

Postgres替换字符串中的字符

来自分类Dev

从 postgres 日期和 postgres 时间获取 Postgres 时间戳值

来自分类Dev

在特定模式之后提取字符串

来自分类Dev

提取字符串中最后一个下划线之后的数字

来自分类Dev

Postgres提取多态列

Related 相关文章

  1. 1

    在第一次出现模式之后并在另一个模式之前提取字符串

  2. 2

    如何在第一次出现的:和冒号之间提取字符串

  3. 3

    XSL子字符串-字符串的最后一次出现之后

  4. 4

    如何在Postgres中提取字符串的未定义长度

  5. 5

    根据多种模式从Postgres表中获取字符串

  6. 6

    如何删除字符串的第一次出现和最后一次出现之后的所有行?

  7. 7

    字符串拆分并获得第一次和最后一次出现

  8. 8

    Postgres多行字符串和计算

  9. 9

    与Postgres的连接字符串

  10. 10

    如何选择出现在postgres中特定单词之后的特定子字符串?

  11. 11

    如何从向量中提取特定字符串的最后一次出现

  12. 12

    提取动态变化的字符串的最后一次出现

  13. 13

    R-获取第一次出现和最后一次出现之间的子字符串

  14. 14

    如何在一个字符的第一次出现和另一个字符的第一次出现之间提取字符串?

  15. 15

    javascript替换字符串的最后一次出现

  16. 16

    查找字符串的最后一次出现

  17. 17

    Postgres Regex_Replace:在替换字符串中使用模式

  18. 18

    Postgres:在一次交易中进行截断和复制

  19. 19

    使用 SQLAlchemy 和 Postgres 一次进行多次插入

  20. 20

    Postgres模式匹配字符串的中间字母

  21. 21

    如何在字符串中找到模式最后一次出现的位置,并使用这些位置从另一个字符串中提取子字符串

  22. 22

    正则表达式模式替换字符串中最后一次出现的模式

  23. 23

    在最后一段之后从字符串中提取字符

  24. 24

    使用Postgres Regex搜索返回匹配的子字符串

  25. 25

    Postgres替换字符串中的字符

  26. 26

    从 postgres 日期和 postgres 时间获取 Postgres 时间戳值

  27. 27

    在特定模式之后提取字符串

  28. 28

    提取字符串中最后一个下划线之后的数字

  29. 29

    Postgres提取多态列

热门标签

归档