我可以使用regexp列出来自Sqlite3数据库的命中,但使用regexp进行“搜索和替换”的语法是什么。
答案 0 :(得分:4)
如果您考虑在替换字符串中使用反向引用,那是不可能的,AFAIK。你做了一个更新,如下所示:
UPDATE foo
SET bar = <some expr including baz>
WHERE baz REGEXP <regex>
但是,指定的表达式必须依赖传统的字符串函数,如replace(...)
和substr(...)
(或您自己的extension functions)。无法调用REGEXP
运算符找到的组。
编辑:这是一个具体示例,它将'STOCK ID: '
列中前缀item_key
后面的数字库存ID解释为库存号:
UPDATE staff
SET stock_number = CAST(substr(item_key, 11) AS INTEGER)
WHERE item_key REGEXP '^STOCK ID: \d+'