Isaev Asked:2022-08-15 23:11:58 +0000 UTC2022-08-15 23:11:58 +0000 UTC 2022-08-15 23:11:58 +0000 UTC Postgresql 中的正则表达式兼容性 772 我在这里做了一个正则表达式: WHEN\s*'([^']*)'\s*THEN\s*\n([\s\S]*?)(?=\s*WHEN|ELSE\s*--nichts gefunden) 似乎文档说它在 PostgreSQL 中受支持(?=,但由于某种原因,在它之前一切正常,但在这里根本无法使用它 怎么了?以及如何解决? регулярные-выражения postgresql 1 个回答 Voted Best Answer Wiktor Stribiżew 2022-08-17T03:17:09Z2022-08-17T03:17:09Z SELECT regexp_matches( (SELECT pg_get_functiondef(oid) FROM pg_catalog.pg_proc WHERE proname iLIKE 'Auditlog__references__get'), E'WHEN\\s*?''([^'']*)''\\s*THEN\\s*\n(.*?)(?=\\s*WHEN|ELSE\\s*--nichts gefunden)', 'g') 细节 [\s\S]不需要该模式,因为在 PostgreSQL 中.它可以找到任何字符,包括换行符 在同一“级别”的贪婪(第一个)量词之后的惰性量词变得贪婪,因此第一个量化模式 ,\s*?必须是惰性的,以便所有后续的也是惰性的。 这里不需要标志m(因为既没有^,也没有$),只需要标志g(查找所有匹配项)。
细节
[\s\S]不需要该模式,因为在 PostgreSQL 中.它可以找到任何字符,包括换行符\s*?必须是惰性的,以便所有后续的也是惰性的。m(因为既没有^,也没有$),只需要标志g(查找所有匹配项)。