如何在 postgresql 中用它的根替换一个单词?

Posted

技术标签:

【中文标题】如何在 postgresql 中用它的根替换一个单词?【英文标题】:How can I replace a word with its root in postgresql? 【发布时间】:2020-01-14 08:32:30 【问题描述】:

我想做的是像

select
"wise, wisdom and wiseness have a common root"  as body,
regexp_replace(body,'wis%','wise') 

获得

wise --> wise  
wisdom --> wise   
wiseness --> wise 

所以结果是 “智者,智者与智者同根”

【问题讨论】:

您将如何在计算上从“智慧”变为“明智”?对于 *** 问题来说,这并不是那么微不足道,而且可能过于宽泛。 从语言学的角度我同意,但在这里从 wis --> 到智慧就足够了,这要容易得多。我不在乎诸如“我希望你没事”之类的错误——>“我希望你没事” 这需要与其他根一起使用还是仅与“wis”一起使用? 只有一个特定的根。其实第一条评论正是我的意思,比我想象的要容易得多 见***.com/a/14064547/9990662。 【参考方案1】:

demo:db<>fiddle

select
regexp_replace('wise, wisdom and wiseness have a common root','wis[\w]*','wise','g')
    RegExp wis[\w]* 正在搜索所有以 wis 开头后跟任意数量的字母和数字的单词。如果您只对字母感兴趣,请使用 [A-Za-z] 而不是 [\w]。 标记g 使其适用于所有事件。

【讨论】:

以上是关于如何在 postgresql 中用它的根替换一个单词?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:如何在表数据中用单引号查找和替换多引号

在 Hive 中用空替换单引号(')

如何在Java中用空字符串替换'

如何在实体框架中用枚举替换 Int 属性?

如何在 OpenType PostScript OTF 字体文件中用一个字形替换另一个字形?

如何在 iTunes Connect 中用新版本替换状态为“准备提交”的当前版本应用程序?