如何使用正则表达式来替换SQLite中字符串的一部分?

nafvub8i  于 2023-02-09  发布在  SQLite
关注(0)|答案(1)|浏览(436)

我现在想要一些关于如何在SQLite中使用正则表达式查找和替换字符串的建议?我正在使用Rstudio/R作为SQLite连接器。
我有以下字符串:

my_strings
--------------
1244599arts
3490872testing
4478933great
2342340obvious 
gremlin2342678

我想用单词“final”替换数字-现在我想使用正则表达式来实现这一点,因为我希望能够只捕获数字,然后用单词“final”替换它们,而不影响字符串的任何其他部分
我希望取得的成果如下:

my_strings
--------------
finalarts
finaltesting
finalgreat
finalobvious 
gremlinfinal

正如您所看到的,数字现在已经被单词“final”所取代-请注意,我有大约800万行,所以我不能只是重复一个REPLACE函数,因为数字太多了!
我编写了一些正则表达式来捕获这些数字,下面的语句将匹配这些数字:

[0-9]{7}

Here is an example of how the above matches those numbers
现在我想使用这个regex语句来修改这些字符串--原因是我想学习如何在sqlite中使用regex来查找和替换字符串的匹配部分。
有人有什么建议吗?
作为参考,我可以使用REGEXP函数,因为我已经在R中创建了一个sqlite示例。

a5g8bdjr

a5g8bdjr1#

您可以使用sqlean-regexp扩展,它提供正则表达式搜索和替换函数:

-- replace 7 digits with the word 'final'
update t set my_strings = regexp_replace(my_strings, '[0-9]{7}', 'final');

相关问题