前言:Oracle在Select、Update数据时,针对字符串的处理,有时需要正则表达式配合,本文记录了部分正则表达式在SQL中的使用。
1、匹配数字+符号 场景:有N行记录,均带有数字和顿号前缀,需要筛选以上格式的内容行 正则:^[0-9][:、] 语法:regexp(原内容,正则表达式) SQL示例:select * from table where regexp_like(source_character,'^[0-9][:、]') 类似于: select * from table where source_character like '数字、%' 2、修改匹配到的内容,并提交事务 场景:有N条记录,需要对其中M条具有固定格式的记录进行批量更新。更新规则为:去掉数字加顿号的序号前缀 正则:使用regexp_replace 移除字符串前的数字+符号 语法:regexp_replace(原内容,正则表达式,替换后的内容,替换第N次出现的字符) 示例:update table set col = regexp_replace(col,'^[0-9][:、]','',1) where xxx 解释:匹配所有以数字+、开头的字符串,并替换为空白,且仅替换第一次匹配到的内容
|