oracle正则表达式----通过解析商品名称学习
来源:互联网 发布:mac office 安装失败 编辑:程序博客网 时间:2024/06/04 19:55
1.oracle 正则统配符号
'^' 匹配开始位置,注:方括号内表示否的意思。
'$' 匹配结尾位置
'.' 匹配除换行符 \n之外的任何单字符。
'?' 匹配前面的子表达式零次或一次。
'*' 匹配前面的子表达式零次或多次。
'+' 匹配前面的子表达式一次或多次。
'( )' 标记一个子表达式的开始和结束位置。
'[]' 标记一个中括号表达式。
'{m,n}' m=<出现次数<=n
'|' 或
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。
2.Oracle正则字符簇
[[:alpha:]] 任何字母。
[[:digit:]] 任何数字。
[[:alnum:]] 任何字母和数字。
[[:space:]] 任何白字符。
[[:upper:]] 任何大写字母。
[[:lower:]] 任何小写字母。
[[unct:]] 任何标点符号。
[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。
3.匹配取值
‘c’ 说明在进行匹配时区分大小写(缺省值);
'i' 说明在进行匹配时不区分大小写;
'n' 允许使用可以匹配任意字符的操作符;
'm' 将x作为一个包含多行的字符串。
4.常用的函数
REGEXP_SUBSTR :返回匹配模式的子字符串。
REGEXP_INSTR:该函数查找 pattern ,并返回该模式的第一个位置。
REGEXP_REPLACE::字符串替换函数。相当于增强的replace函数。
REGEXP_LIKE:返回满足匹配模式的字符串。相当于增强的like函数。
5.实际举例---解析商品
5.1商品单位、容量、数量解析
假设有10个商品,我们需要解析出所有单位(毫升或升)、容量(如555)、数量如(20 )
步骤一:商品解析
-----匹配增加两列,
-----第一列匹配含有数字+(ml、L、升、毫升)的字段p1,
-----第二列包含(*、+、X等)+数字的字段 p2
select
prod_name,
regexp_substr( prod_name, '([[:digit:]]+\.)?[[:digit:]]+( )*(ml||ML|毫|升|毫升)+', 1,1,'i' ) p1,
regexp_substr( prod_name, '(\*|X|×|*)( )*[[:digit:]]+', 1,1,'i' ) p2
from test1
结果如下
步骤二----生成三列,
----pp1由p1解析只含有字母的列
----pp2由p1解析只含有数字的列、
----pp3由p2解析只含有数字的列
select
prod_name,
regexp_substr(p1,'([[:alpha:]])+') pp1,
regexp_substr(p1,'([[:digit:]]+\.?)+') pp2,
regexp_substr(p2,'([[:digit:]])+') pp3
from test2
其结果如下
通过这些方法就把商品单位、容量、数量均解析出来了
5.2选择限定商品
我们希望选择单位为ml的商品
select * from test3 where regexp_like(pp1,'ml','i')
到此就大致记录了工作种用到的Oracle正则表达式,后续会继续增加,所学到的正则
- oracle正则表达式----通过解析商品名称学习
- java-grok通过正则表达式解析日志
- 通过正则表达式解析HTML入门指南
- Oracle 学习笔记: 正则表达式
- Oracle 正则表达式函数学习
- 通过例子学习正则表达式(一)--基础知识
- 通过时间校验学习JavaScript正则表达式
- 通过时间校验学习JavaScript正则表达式
- 通过时间校验学习JavaScript正则表达式
- Java 通过正则表达式实现简单xml文件解析
- 通过例子学习正则表达式(二)--检查输入的"钱"
- 正则表达式语法解析
- 解析正则表达式
- 解析HTML正则表达式
- 正则表达式语法解析
- 正则表达式 解析
- JavaScript正则表达式解析
- 正则表达式解析一
- HashMap深度解析
- 通过身份证号动态获取生日、性别、年龄
- 常见的几种最优化方法
- python中文件读写及操作目录 文件夹等
- java实现从一个整型数组中随机取一个数
- oracle正则表达式----通过解析商品名称学习
- windows7中更改文件浏览器的默认浏览方式
- error LNK1112: 模块计算机类型“X64”与目标计算机类型“x86”冲突”
- jira安装与破解
- 虚拟机操作脚本
- NODEJS中间件
- UnityShader太空中的大气层效果
- Flex 布局教程:语法篇
- 排序、子查询