“搜索和替换”中的正则表达式的sqlite3语法

问题描述:

我可以使用正则表达式从Sqlite3数据库中列出匹配,但是使用正则表达式搜索和替换的语法是什么。“搜索和替换”中的正则表达式的sqlite3语法

如果您正在考虑在替换字符串中使用反向引用,那是不可能的,AFAIK。你做一个更新,具体如下:

UPDATE foo 
    SET bar = <some expr including baz> 
WHERE baz REGEXP <regex> 

但分配的表达将不得不依靠传统的字符串函数像replace(...)substr(...)(或您自己的extension functions)。没有办法调用REGEXP运算符找到的组。

编辑:下面是解释在item_key列股票编号如下前缀'STOCK ID: '数值股票ID的具体的例子:

UPDATE staff 
    SET stock_number = CAST(substr(item_key, 11) AS INTEGER) 
WHERE item_key REGEXP '^STOCK ID: \d+' 
+0

谢谢,但我不完全理解的格式,这一切是如何应用你在哪里有和。你能完全注释这个例子吗?谢谢 – JPG 2010-10-16 12:19:34

+0

@JPG:我已经给我的答案添加了一个例子。 – 2010-10-17 06:22:49

+0

+1用于链接到扩展功能。这是做OP的想法。 – 2010-10-17 07:29:58