postgresql 删除所有特殊字符以及字符串的第一个字符

rt4zxlrg  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(264)

我用postgresql11
我想删除所有特殊字符,然后删除以这个字符"اآٱإأ"开始的字的第一个字符
这是文本的可能性:

أحمد بن حنبل

آحمد بن حنبل.

إحمد  بن، حنبل

 احمد بن حنبل

 .أحمد. بن حنبل.

所有结果应为حمد بن حنبل
所以删除所有特殊字符,然后删除以"اآٱإأ"开头的单词的第一个字符
我找到了删除特殊字符的方法,但我想在相同的模式中删除以اآٱإأ开头的单词的第一个字符
我试着用这个代码:

select regexp_replace('آحمد ! بن، حنبل',  '[^\w]+',' ','g')

有人能帮我找到正确的查询吗

fzwojiic

fzwojiic1#

你已经做得很好了!所缺少的只是删除第一个字符,如果合适的话:

select regexp_replace(
          regexp_replace('آحمد ! بن، حنبل',  '[^\w]+',' ','g'),
          '^[اآٱإأ]?(.*)',
          '\1'
       );

 regexp_replace 
════════════════
 حمد بن حنبل
(1 row)

请注意,要使\w按预期工作,必须使用阿拉伯语语言环境创建数据库。

相关问题