如何在 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:如何在表数据中用单引号查找和替换多引号