gpt4 book ai didi

regex - 如何在 PostgreSQL 中匹配句子中的最后两个单词?

转载 作者:行者123 更新时间:2023-11-29 11:33:22 24 4
gpt4 key购买 nike

尝试了一段时间,匹配一个句子的最后一个字:

select regexp_matches('My name is Harry Potter', '[^ ]+$');

返回 {Potter}

尝试匹配最后两个词:

select regexp_matches('My name is Harry Potter', '[^ ]\s+[^ ]+$');

失败了。

select regexp_matches('My name is Harry Potter', '(.*?)\s+(.*?)$');

也没有按预期措辞。

有什么见解吗?

最佳答案

与其使用返回匹配数组的 REGEXP_MATCHES,不如使用 SUBSTRING 更好,它将以 TEXT 的形式给出匹配直接。

使用正确的模式,正如@Abelisto 分享的那样,您可以这样做:

SELECT SUBSTRING('My name is Harry Potter' FROM '\w+\W+\w+$')

这将返回 Harry Potter 而不是 {"Harry Potter"}

根据@Hambone 的评论,如果末尾的任何一个单词包含标点符号,如撇号,您需要考虑使用以下模式:

SELECT SUBSTRING('My name is Danny O''neal' FROM '\S+\s+\S+$')

上面的代码会正确返回 Danny O'neal 而不仅仅是 O'neal

关于regex - 如何在 PostgreSQL 中匹配句子中的最后两个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38754634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com